2017-10-17 23 views
0

Lors de la lecture des systèmes de base de données, je l'ai rencontré par l'intermédiaire d'une requête comme indiqué ci-dessous:Pourquoi utiliser unique lorsque la clé primaire sur la même clé est déjà définie

CREATE TABLE works (
    eid  INTEGER NOT NULL, 
    did  INTEGER NOT NULL, 
    pcttime INTEGER, 
    PRIMARY KEY (eid, 
    did), 
    UNIQUE (eid), 
    FOREIGN KEY (did) 
     REFERENCES dept 
); 

Depuis clé primaire sur eid, n'est déjà défini, pourquoi nous avons besoin unique sur eid? Parce que chaque eid, la paire est déjà unique.

Répondre

4

La clé primaire se trouve sur deux colonnes, vous pouvez donc avoir des eids non uniques. Par exemple,

eid did 
1  1 
1  2 

Cela ne porte pas atteinte à votre clé primaire, mais violerait votre contrainte unique.

+0

Merci pour l'explication !! – Dipendra543