我正在引用另一个用户的密钥:
示例:
create table emp
( name char(10)
, empid char(10)
, dob date
, phone char(14)
, primary key(empid)
, foreign key phone
references (user2.contacts)
);
其中user2
包含一个以电话为主键的表格。
我怎样才能做到这一点?
答案 0 :(得分:4)
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) );
明确命名我们的约束是一种好习惯,因为系统生成的名称很难处理。
答案 1 :(得分:-1)
它应该是这样的:
create table emp
( name char(10)
, empid char(10)
, dob date
, phone char(14)
, primary key(empid)
, foreign key phone
references user2.contacts)
);