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