Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL - Направете двойка стойности уникална

Нарича се композитен ключ.

Ако искате да промените действителния си PK на композитен, използвайте

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

Можете също така просто да добавите уникално ограничение (вашият PK ще бъде същият, а уникалните двойки... ще трябва да бъдат уникални).

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

Лично аз бих препоръчал второто решение (прост PK + уникално ограничение), но това е само лична гледна точка. Можете да търсите в Google аргументи за плюсове и минуси за съставните ключове.

Частта между [] са по избор.

РЕДАКТИРАНЕ

Ако искате да направите това в оператора за създаване на таблица

За композитен пк

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

За уникален индекс

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как:Почистване на mysql InnoDB машина за съхранение?

  2. как да преиндексира mysql таблица

  3. SQL:Създаване на релационна таблица с 2 различни auto_increment

  4. Защо това връща идентификатор на ресурс #2?

  5. Вземете имена на таблици от база данни