为什么在已经定义了相同键的主键时使用Unique

时间:2017-10-17 23:15:25

标签: mysql primary-key unique-key

在阅读数据库系统时,我遇到了如下所示的查询:

 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上的主键已经定义了,为什么我们需要在eid上使用unique?因为每个eid,确实对已经是唯一的了。

1 个答案:

答案 0 :(得分:4)

主键位于两列上,因此您仍可以使用非唯一的eid。如,

eid   did
1     1
1     2

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