如何在SQL中设置两列唯一

时间:2010-06-17 07:59:02

标签: sql unique

我正在创建一个表,在表中两列是唯一的,我的意思是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 个答案:

答案 0 :(得分:3)

创建一个唯一的键列:

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。

答案 1 :(得分:3)

CREATE UNIQUE INDEX `my_index_name` ON `my_table` (`col1`,`col2`)