Je voudrais mettre en place une table dans PostgreSQL de telle sorte que deux colonnes ensemble doivent être uniques. Il peut y avoir plusieurs valeurs de l'une ou l'autre valeur, tant qu'il n'y en a pas deux qui partagent les deux.
Par exemple:
CREATE TABLE someTable (
id int PRIMARY KEY AUTOINCREMENT,
col1 int NOT NULL,
col2 int NOT NULL
)
Donc, col1
et col2
peut répéter, mais pas en même temps. Donc, cela serait autorisé (sans compter l'identifiant)
1 1
1 2
2 1
2 2
mais pas ça:
1 1
1 2
1 1 -- would reject this insert for violating constraints
sql
postgresql
unique
PearsonArtPhoto
la source
la source
Réponses:
autoincrement
n'est pas postgresql. Vous voulez unserial
.Si col1 et col2 font un unique et ne peuvent pas être null alors ils font une bonne clé primaire:
la source
Créez une contrainte unique selon laquelle deux nombres ensemble NE PEUVENT PAS être répétés ensemble:
la source
Semble comme une contrainte UNIQUE régulière :)
Plus ici
la source
a
et un index pourc
indépendamment? Parce que j'ai besoin de trouver rapidement basé sura
parfois, et de trouver rapidement basé surc
parfois.