2013-03-08 46 views
2

我正在使用mysql server.where創建了一個名爲question的表。這個表的列/屬性是(course,subject,year,question) 我想創建一個主鍵(或複合鍵)由(course + subject + year)組成。即對於特定課程+科目+年份組合,只能有一個問題。只有一行與(課程+科目+年)的組合,則不可能創建另一行。 我已經做到了:如何在MySQL數據庫中創建組合鍵

primary key(course,subject,year); 

,但它不是working.still我可以創建兩排,當然同樣的組合,主題年。

任何人都可以告訴我我怎樣才能創建一個組合鍵propery?

+0

MySQL服務器或SQL服務器現有的表? - http://stackoverflow.com/questions/5835978/how-to-properly-create-composite-primary-keys-mysql – jcho360 2013-03-08 19:44:20

+0

mysql sever .... – 2013-03-08 19:45:37

+0

當你說不工作,定義你的意思。它會拋出任何錯誤嗎? – christopher 2013-03-08 19:47:04

回答

5

語法是mysql CONSTRAINT constraint_name PRIMARY KEY(col1,col2,col3)例如::

CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

上面的例子將工作如果您在創建表格時正在寫它,例如:::

CREATE TABLE person (
    P_Id int , 
    ............, 
    ............, 
    CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName) 
); 

這個約束添加到您需要遵循以下語法

ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (P_Id,LastName) 
4

如果你正在尋找,你應該做同樣的事情到

ALTER TABLE table_name ADD PRIMARY KEY (a, b, c); 
+0

我已經設置了一個主鍵, table.but仍然允許2個或更多的行相同的組合相同的順序相同組合的a,b,c – 2013-03-08 19:56:29

+0

?即在1行以上a = 1,b = 2,c = 3? – bizzehdee 2013-03-08 20:02:53

+0

是相同的組合相同的順序 – 2013-03-08 20:25:17

相關問題