oracle - 跨用户引用外键

标签 oracle reference foreign-keys

我引用的是另一个用户的 key :

示例:

create table emp 
     ( name char(10)
     , empid char(10)
     , dob date
     , phone char(14)
     , primary key(empid)
     , foreign key phone 
          references (user2.contacts)
       );

其中 user2 保存一个以电话作为主键的表。

我怎样才能实现这个目标?

最佳答案

USER2 需要授予您的用户对其表的 REFERENCES 权限。

grant references on contacts to user1
/

请注意,与其他权限不同,REFERENCES 必须始终直接授予。如果通过角色授予权限,则 USER1 将无法创建外键。

外键的语法要求我们在引用中包含主键(或至少一个唯一键)列:

create table emp       
( name char(10)      
      , empid char(10)     
      , dob date
      , phone char(14)
      , constraint emp_pk primary key(empid)
      , constraint emp_contact foreign key (phone)
            references (user2.contacts.phone)        ); 

明确命名我们的约束是一种很好的做法,因为系统生成的名称使用起来很痛苦。

关于oracle - 跨用户引用外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10376087/

相关文章:

mysql - 导出 MySQL 和 Oracle 查询的大量结果

android:如何将 View 引用传递给服务

mysql - 正确的数据库?需要改吗?

MySQL 外键约束混淆

php - 为什么 Propel 创建函数来检索一些关系对象,而不是全部?

sql - 如何在不使用子查询的情况下仅选择具有最大序列的行?

sql - 在数据库级别应用业务规则

database - 检索包内存在的对象/记录的元数据 - Oracle 数据库

c++ - 带有 if 语句的指针(地址)

c# - CSharp 引用在 Delphi XE2 中编译的 x64 OCX