为什么在同一键上的主键已定义时使用 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

这不会违反您的主键,但会违反您的唯一约束。