Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL - Machen Sie ein Wertepaar eindeutig

Er wird zusammengesetzter Schlüssel genannt.

Wenn Sie Ihre tatsächliche PK in eine zusammengesetzte ändern möchten, verwenden Sie

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>);

Sie können auch einfach eine eindeutige Einschränkung hinzufügen (Ihr PK wird derselbe sein und eindeutige Paare ... müssen eindeutig sein).

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

Persönlich würde ich die zweite Lösung empfehlen (einfache PK + eindeutige Einschränkung), aber das ist nur eine persönliche Sichtweise. Sie können nach Vor- und Nachteilen zu zusammengesetzten Schlüsseln googeln.

Der Teil zwischen [] sind optional.

BEARBEITEN

Wenn Sie dies in der create table-Anweisung tun möchten

Für ein zusammengesetztes Paket

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

Für einen eindeutigen Index

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