如何设置两个列在SQL
问题描述:
我创建一个表中是唯一,在表中的两列是独一无二的,我的意思是columnA和columnB不具有相同的价值: 如:如何设置两个列在SQL
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);
答
创建一个唯一的密钥柱:
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);
最后一行将失败,因为组合的= 1且b = 2已经在表中存在。
答
CREATE UNIQUE INDEX `my_index_name` ON `my_table` (`col1`,`col2`)
+0
谢谢!我懂了 – sxingfeng 2010-06-17 08:17:33
很多谢谢,但我已经有一个主键 – sxingfeng 2010-06-17 08:07:09
我在我的问题 – sxingfeng 2010-06-17 08:09:28
编辑。改为创建一个唯一的密钥。 – 2010-06-17 08:12:18