Ich möchte eine Tabelle in PostgreSQL so einrichten, dass zwei Spalten zusammen eindeutig sein müssen. Es kann mehrere Werte für jeden Wert geben, solange es nicht zwei gibt, die beide gemeinsam haben.
Zum Beispiel:
CREATE TABLE someTable (
id int PRIMARY KEY AUTOINCREMENT,
col1 int NOT NULL,
col2 int NOT NULL
)
Also col1
und col2
kann wiederholen, aber nicht gleichzeitig. Dies wäre also zulässig (ohne ID)
1 1
1 2
2 1
2 2
aber nicht das:
1 1
1 2
1 1 -- would reject this insert for violating constraints
sql
postgresql
unique
PearsonArtPhoto
quelle
quelle
Antworten:
autoincrement
ist nicht postgresql. Du willst eineserial
.Wenn col1 und col2 eindeutig sind und nicht null sein können, bilden sie einen guten Primärschlüssel:
quelle
Erstellen Sie eine eindeutige Einschränkung, dass zwei Zahlen zusammen NICHT wiederholt werden können:
quelle
Scheint wie normale EINZIGARTIGE EINSCHRÄNKUNG :)
Mehr hier
quelle
a
und einen Index fürc
unabhängig hinzu? Weil ich schnell basierend aufa
manchmal finden muss und schnell basierend aufc
manchmal finden muss.