2010-06-17 7 views
3

Je crée une table, dans la table deux colonnes est unique, je veux dire COLUMNA et ColumnB n'ont pas la même valeur: tels que:Comment configurer deux colonnes unique dans 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) 

Comment créer une telle table? merci beaucoup!

create table X 
(
[ID] INTEGER PRIMARY KEY AUTOINCREASE NOT NULL,\ 
[A] INTEGER, 
[B] INTEGER); 

Répondre

3

Créer une colonne clé unique:

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

La dernière ligne échouera car la combinaison a = 1 et b = 2 existe déjà dans le tableau.

+0

Merci beaucoup, mais je possède déjà un – sxingfeng

+0

clé primaire, je l'ajouter dans ma question – sxingfeng

+0

Modifié. Créez une clé unique à la place. –

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

Merci zed! je vois – sxingfeng

Questions connexes