PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Erzwingen Sie in Postgresql die Eindeutigkeit bei der Kombination von zwei Spalten

CREATE TABLE someTable (
    id serial PRIMARY KEY,
    col1 int NOT NULL,
    col2 int NOT NULL,
    UNIQUE (col1, col2)
)

autoincrement ist nicht postgresql. Sie möchten einen integer primary key generated always as identity (oder serial wenn Sie PG 9 oder niedriger verwenden. serial wurde in PG 10 abgekündigt).

Wenn col1 und col2 ein Unikat machen und nicht null sein können, dann machen sie einen guten Primärschlüssel:

CREATE TABLE someTable (
    col1 int NOT NULL,
    col2 int NOT NULL,
    PRIMARY KEY (col1, col2)
)