如何在SQL中设置两列唯一?

4

我正在创建一个表格,在这个表格中,两列是唯一的,也就是说,列A和列B的值不相同,例如:

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
创建一个唯一键列:
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 已经存在于表中。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接