PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Първичен ключ за множество колони в PostgreSQL?

Може да има само един първичен ключ за таблица - както е посочено от думата "първичен".
Можете да имате допълнителен 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. Използвайте законни идентификатори с малки букви, така че никога да не се налага да използвате двойни кавички. Улеснява живота ви. Вижте:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхранявайте низ със специални знаци като кавички или обратна наклонена черта в таблицата postgresql

  2. pg gem Trace/BPT trap:грешка 5 на MAC OS X lion

  3. Как да получите първи и последен запис от sql заявка?

  4. Как мога да импортирам .sql файл в моята Heroku postgres база данни?

  5. Последователности със съставен първичен ключ