PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

No Postgresql, force unique na combinação de duas colunas

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

autoincrement não é postgresql. Você quer uma integer primary key generated always as identity (ou serial se você usar PG 9 ou inferior. serial foi depreciado em PG 10).

Se col1 e col2 fazer um único e não pode ser nulo, então eles fazem uma boa chave primária:
CREATE TABLE someTable (
    col1 int NOT NULL,
    col2 int NOT NULL,
    PRIMARY KEY (col1, col2)
)