我引用的是另一个用户的 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/