问题很简单。
假设已创建下表
CREATE TABLE Customer
( name varchar(20),
address varchar (40),
primary key (name));
我想知道写这样一个表的区别是什么
CREATE TABLE Orders
( name varchar(20),
assembly_id numeric (9, 0),
primary key (assembly_id),
foreign key (name) references Customer);
并且喜欢这个
CREATE TABLE Orders
( name varchar(20),
assembly_id numeric (9, 0),
primary key (assembly_id),
foreign key (name) references Customer(name));
答案 0 :(得分:0)
CREATE TABLE Orders
( name varchar(20),
assembly_id numeric (9, 0),
primary key (assembly_id),
foreign key (name) references Customer);
此外键默认情况下引用Customer表的主键。
但是在这段代码中
CREATE TABLE Orders
( name varchar(20),
assembly_id numeric (9, 0),
primary key (assembly_id),
foreign key (name) references Customer(name));
foreing key name引用任何指定的Candidate键。此处指定名称。
所以两者都是一样的。但是在第一种情况下,由于未指定key,因此它引用主键。在第二种情况下,键是明确指定的。