Może być tylko jeden klucz podstawowy na tabelę – zgodnie ze słowem „podstawowy”.
Możesz mieć dodatkowe UNIQUE
kolumny
jak:
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
);
Kolumny będące (częścią) PRIMARY KEY
są oznaczone NOT NULL
automatycznie.
Lub użyj ograniczenia tabeli zamiast ograniczenia kolumny, aby utworzyć pojedynczy wielokolumnowy klucz podstawowy . Różni się to semantycznie od powyższego:teraz tylko kombinacja obu kolumn musi być niepowtarzalna, każda kolumna może zawierać własne duplikaty.
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)
);
Wielokolumnowy UNIQUE
możliwe są również ograniczenia.
Na marginesie:Nie używaj identyfikatorów CaMeL-case w Postgresie. Używaj legalnych identyfikatorów pisanych małymi literami, aby nigdy nie używać podwójnych cudzysłowów. Ułatwia Ci życie. Zobacz: