Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL - Rendi unica una coppia di valori

Si chiama chiave composita.

Se vuoi cambiare la tua PK attuale in una composita, usa

Alter table <your table> drop PRIMARY KEY;
Alter table <your table> drop COLUMN <your autoincremented column>;

Alter table <your table> add [constraint <constraint name>] PRIMARY KEY (<col1>, <col2>);

Puoi anche aggiungere un vincolo univoco (il tuo PK sarà lo stesso e le coppie uniche... dovranno essere uniche).

alter table <your table> add [constraint <constraint name>] unique index(<col1>, <col2>);

Personalmente, consiglierei la seconda soluzione (PK semplice + vincolo unico), ma è solo un punto di vista personale. Puoi cercare su Google argomenti pro e contro sulle chiavi composte.

La parte tra [] sono facoltativi.

MODIFICA

Se vuoi farlo nell'istruzione di creazione tabella

Per un pacchetto composito

CREATE TABLE Test(
    id1 int NOT NULL, 
    id2 int NOT NULL,
    id3 int NOT NULL,
    PRIMARY KEY (id1, id2)
);

Per un indice univoco

CREATE TABLE Test1(
    id1 int NOT NULL AUTO_INCREMENT, 
    id2 int NOT NULL,
    id3 int NOT NULL,
    PRIMARY KEY (id1),
    UNIQUE KEY (id2, id3)
);