Как установить два столбца уникальных в SQL - PullRequest
4 голосов
/ 17 июня 2010

Я создаю таблицу, в таблице два столбца уникальны, я имею в виду, что columnA и columnB не имеют одинакового значения: например:

Table X
A B
1 2(RIGHT,unique)
2 2(RIGHT, unique)
1 3(RIGHT, not unique)
2 3(RIGHT, not unique)
1 2 (WRONG, not unique)

Как создать такую ​​таблицу?большое спасибо!

create table X 
(
[ID] INTEGER PRIMARY KEY AUTOINCREASE NOT NULL,\
[A] INTEGER,
[B] INTEGER);

Ответы [ 2 ]

3 голосов
/ 17 июня 2010
CREATE UNIQUE INDEX `my_index_name` ON `my_table` (`col1`,`col2`)
3 голосов
/ 17 июня 2010

Создайте уникальный ключевой столбец:

CREATE TABLE X
(
    ID INTEGER PRIMARY KEY AUTOINCREASE NOT NULL,
    A INTEGER,
    B INTEGER,
    UNIQUE KEY(A, B)
);

INSERT INTO X(A, B) VALUES(1, 2);
INSERT INTO X(A, B) VALUES(2, 2);
INSERT INTO X(A, B) VALUES(1, 3);
INSERT INTO X(A, B) VALUES(2, 3);
INSERT INTO X(A, B) VALUES(1, 2);

Последняя строка не будет выполнена, так как комбинация a = 1 и b = 2 уже существует в таблице.

...