2013-12-08 42 views
0

如何使雙方的列SID和下方創建表時超鍵CCODE在表?:如何在表格中創建一個超級鍵?

Enrolled (sid integer, ccode varchar(6)) 

這裏就是我和嘗試,但顯然SQL不允許多主鍵要這樣聲明:

CREATE TABLE Enrolled 
(
sid integer, 
ccode varchar(6), 
CONSTRAINT enrolled_pkey1 PRIMARY KEY (sid), 
CONSTRAINT enrolled_pkey2 PRIMARY KEY (ccode) 
); 

我正在使用pgAdmin3 - Postgres。

+0

超級鍵的列數多於標識每條記錄所需的列數。你爲什麼要這樣?您是否混淆了術語*鍵*和*索引*? – Oswald

+3

你是指一個*複合鍵*?從來沒有聽說過* super key *這個詞。 – ThiefMaster

+0

是的,我認爲技術術語是一個複合關鍵。 – user3079679

回答

2

你需要兩列,將帶來一個主鍵:

CREATE TABLE Enrolled 
(
    sid integer, 
    ccode varchar(6), 
    CONSTRAINT enrolled_pkey PRIMARY KEY (sid, code) 
); 

然而,它通常是一個好主意,讓一個簡單的serial型主鍵,只需使用例如字段或字段組合的唯一約束需要是唯一的。

+0

好的。這解決了這個問題。謝謝。 – user3079679

相關問題