0

如何使用PostgreSQL爲單個表中的多列提供主鍵?PostgreSQL中多列的主鍵?

例子:

Create table "Test" 
(
    "SlNo" int not null primary key, 
    "EmpID" int not null, /* Want to become primary key */ 
    "Empname" varchar(50) null, 
    "EmpAddress" varchar(50) null 
); 

注:我想打"EmpID"也是主鍵。

+0

我不知道我很明白,你是否試圖用兩列或兩個完全獨立的鍵創建單個主鍵? –

+0

@Joachim Isaksson,兩列的單一主鍵。 – Meem

回答

15

每個表只能有一個主鍵。這就是「主要」這個詞所暗示的。

您可以額外購買UNIQUE columns

CREATE TABLE test(
    sl_no int PRIMARY KEY, -- NOT NULL automatically 
    emp_id int UNIQUE NOT NULL, 
    emp_name text, 
    emp_addr text 
); 

還是要做出一個multicolumn primary key,而不是使用列約束表約束:

CREATE TABLE test(
    sl_no int,  -- NOT NULL automatically 
    emp_id int , -- NOT NULL automatically 
    emp_name text, 
    emp_addr text, 
    PRIMARY KEY (sl_no, emp_id) 
); 

旁白:我的建議是不要在Postgres的使用駝峯標識符。永遠。讓你的生活更輕鬆。