2010-06-17 28 views
3

我创建一个表中是唯一,在表中的两列是独一无二的,我的意思是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); 

回答

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); 

最后一行将失败,因为组合的= 1且b = 2已经在表中存在。

+0

很多谢谢,但我已经有一个主键 – sxingfeng 2010-06-17 08:07:09

+0

我在我的问题 – sxingfeng 2010-06-17 08:09:28

+0

编辑。改为创建一个唯一的密钥。 – 2010-06-17 08:12:18

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

谢谢!我懂了 – sxingfeng 2010-06-17 08:17:33

相关问题