Gostaria de configurar uma tabela no PostgreSQL para que duas colunas juntas sejam únicas. Pode haver vários valores de um ou outro valor, desde que não haja dois que compartilhem os dois.
Por exemplo:
CREATE TABLE someTable (
id int PRIMARY KEY AUTOINCREMENT,
col1 int NOT NULL,
col2 int NOT NULL
)
Então, col1
e col2
pode repetir, mas não ao mesmo tempo. Portanto, isso seria permitido (sem incluir o ID)
1 1
1 2
2 1
2 2
mas não isso:
1 1
1 2
1 1 -- would reject this insert for violating constraints
sql
postgresql
unique
PearsonArtPhoto
fonte
fonte
Respostas:
autoincrement
não é postgresql. Você quer umserial
.Se col1 e col2 criarem um único e não puderem ser nulos, eles criarão uma boa chave primária:
fonte
Crie uma restrição exclusiva de que dois números juntos NÃO PODEM ser repetidos juntos:
fonte
Parece regular restrição UNIQUE :)
Mais aqui
fonte
a
e um índice parac
independentemente? Porque eu preciso encontrar rapidamente com base ema
algumas vezes, e rapidamente encontrar com base emc
algumas vezes.