为什么在同一键上的主键已定义时使用 Unique
Why use Unique when Primary key on same key is already defined
在阅读数据库系统时,我遇到了如下所示的查询:
CREATE TABLE works (
eid INTEGER NOT NULL,
did INTEGER NOT NULL,
pcttime INTEGER,
PRIMARY KEY ( eid,
did ),
UNIQUE ( eid ),
FOREIGN KEY ( did )
REFERENCES dept
);
既然已经定义了eid,did 的主键,为什么还要要求eid 是唯一的呢?因为每个 eid,did 对已经是唯一的。
主键在两列上,因此您仍然可以拥有非唯一的 eid。例如,
eid did
1 1
1 2
这不会违反您的主键,但会违反您的唯一约束。
在阅读数据库系统时,我遇到了如下所示的查询:
CREATE TABLE works (
eid INTEGER NOT NULL,
did INTEGER NOT NULL,
pcttime INTEGER,
PRIMARY KEY ( eid,
did ),
UNIQUE ( eid ),
FOREIGN KEY ( did )
REFERENCES dept
);
既然已经定义了eid,did 的主键,为什么还要要求eid 是唯一的呢?因为每个 eid,did 对已经是唯一的。
主键在两列上,因此您仍然可以拥有非唯一的 eid。例如,
eid did
1 1
1 2
这不会违反您的主键,但会违反您的唯一约束。