Chciałbym skonfigurować tabelę w PostgreSQL tak, aby dwie kolumny razem były niepowtarzalne. Może istnieć wiele wartości każdej z tych wartości, o ile nie ma dwóch takich samych.
Na przykład:
CREATE TABLE someTable (
id int PRIMARY KEY AUTOINCREMENT,
col1 int NOT NULL,
col2 int NOT NULL
)
Tak, col1
i col2
może powtórzyć, ale nie w tym samym czasie. Tak więc byłoby to dozwolone (bez identyfikatora)
1 1
1 2
2 1
2 2
ale nie to:
1 1
1 2
1 1 -- would reject this insert for violating constraints
sql
postgresql
unique
PearsonArtPhoto
źródło
źródło
Odpowiedzi:
autoincrement
nie jest postgresql. Chceszserial
.Jeśli col1 i col2 tworzą unikat i nie mogą mieć wartości NULL, to tworzą dobry klucz podstawowy:
źródło
Stwórz unikalne ograniczenie, że dwie liczby NIE MOGĄ być razem powtarzane:
źródło
Wygląda jak zwykły UNIKALNY KONTRAKT :)
Więcej tutaj
źródło
a
i indeks dlac
niezależnie? Ponieważ muszę szybko znaleźć na podstawiea
czasami i szybko znaleźć na podstawiec
czasami.