Er kan er maar één zijn primaire sleutel per tabel - zoals aangegeven door het woord "primair".
U kunt aanvullende UNIQUE
kolommen
zoals:
CREATE TABLE test(
sl_no int PRIMARY KEY, -- NOT NULL due to PK
emp_id int UNIQUE NOT NULL,
emp_name text,
emp_addr text
);
Kolommen die (onderdeel van) de PRIMARY KEY
. zijn zijn gemarkeerd met NOT NULL
automatisch.
Of gebruik een tabelbeperking in plaats van een kolombeperking om een enkele meerdere kolommen primaire sleutel . Dit is semantisch anders dan het bovenstaande:Nu, alleen de combinatie van beide kolommen moet uniek zijn, elke kolom kan op zichzelf duplicaten bevatten.
CREATE TABLE test(
sl_no int, -- NOT NULL due to PK below
emp_id int , -- NOT NULL due to PK below
emp_name text,
emp_addr text,
PRIMARY KEY (sl_no, emp_id)
);
Meerdere kolommen UNIQUE
beperkingen zijn ook mogelijk.
Terzijde:gebruik geen CaMeL-case-ID's in Postgres. Gebruik legale identificatiecodes in kleine letters, zodat u nooit dubbele aanhalingstekens hoeft te gebruiken. Maakt uw leven gemakkelijker. Zie: