假设我们通过以下脚本创建了两个表:
create table CAR (
CAR_ID number(19,0),
NAME varchar2(255 char),
primary key (CAR_ID)
);
create table CAR_WHEEL (
CAR_WHEEL_ID number(19,0),
CAR_REF_ID number(19,0),
WHEEL_COLOR varchar2(255 char),
primary key (CAR_WHEEL_ID)
);
现在我想添加一个约束,所以我可以创建以下语句:
alter table CAR_WHEEL
add constraint FK_CAR
foreign key (CAR_REF_ID)
references CAR (CAR_ID);
但是我也看到了脚本,在最后一行有references CAR;
而不是references CAR (CAR_ID);
有什么区别?何时添加列名?如果CAR
表的主键包含更多列,例如primary key (CAR_ID, NAME)
?
如果答案取决于SQL方言,那么我对Oracle特别感兴趣。
答案 0 :(得分:4)
没有特定列的外键将在主键上创建它,因此对于其他主键,您需要从中添加所有列。我不建议使用隐式外键创建。