In Postgresql, Force bei Kombination von zwei Spalten eindeutig
Ich würde gerne eine Tabelle in postgresql so, dass zwei Spalten zusammen müssen eindeutig sein. Es können mehrere Werte entweder Wert, so lange es nicht zwei, die beide teilen.
Zum Beispiel:
CREATE TABLE someTable (
id int PRIMARY KEY AUTOINCREMENT,
col1 int NOT NULL,
col2 int NOT NULL
)
So, col1
und col2
wiederholen kann, aber nicht gleichzeitig. So, das wäre erlaubt (Nicht im id)
1 1
1 2
2 1
2 2
aber nicht dieses:
1 1
1 2
1 1 -- would reject this insert for violating constraints
InformationsquelleAutor der Frage PearsonArtPhoto | 2013-01-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
autoincrement
ist nicht postgresql. Sie möchten eineserial
.Wenn col1 und col2 ein einzigartiges und kann nicht null sein, dann machen Sie einen guten Primärschlüssel:
InformationsquelleAutor der Antwort Clodoaldo Neto
Unique-Einschränkung erstellen, die zwei zahlen zusammen, NICHT gemeinsam wiederholt werden:
InformationsquelleAutor der Antwort djangojazz
Scheint wie normale UNIQUE-EINSCHRÄNKUNG 🙂
Mehr hier
InformationsquelleAutor der Antwort Timur Sadykov