Може да има само един първичен ключ за таблица - както е посочено от думата "първичен".
Можете да имате допълнителен UNIQUE
колони
като:
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
);
Колони, които са (част от) PRIMARY KEY
са маркирани с NOT NULL
автоматично.
Или използвайте ограничение на таблица вместо ограничение на колона, за да създадете единичен многоколонни първичен ключ . Това е семантично различно от горното:Сега само комбинацията на двете колони трябва да е уникален, всяка колона може да съдържа дубликати сама по себе си.
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)
);
Многоколонни UNIQUE
възможни са и ограничения.
Настрана:Не използвайте CaMeL-case идентификатори в Postgres. Използвайте законни идентификатори с малки букви, така че никога да не се налага да използвате двойни кавички. Улеснява живота ви. Вижте: