2013-07-29 41 views
0

這裏很基本的東西,但由於某種原因,它似乎讓我失望。我有一個由兩列組成的查找表。這兩列應該構成主鍵。Mysql複合主鍵不能正常工作

因此,組合鍵的語法很簡單,我會認爲這會完成它。

CREATE TABLE jmc_userpermissions ( 
userpermissions_permissionid int NOT NULL, 
userpermissions_username varchar(55) NOT NULL, 
PRIMARY KEY (userpermissions_permissionid,userpermissions_username) 
) 

現在問題出現在我嘗試填充的時候。

INSERT INTO jmc_userpermissions (userpermissions_permissionid, userpermissions_username) VALUES ('updatecontact', 'angel'); 
INSERT INTO jmc_userpermissions (userpermissions_permissionid, userpermissions_username) VALUES ('updateqty', 'angel'); 

第二條語句返回錯誤:

無法插入updateqty的天使到jmc_userpermissions

重複條目「0天使」關鍵「主要」

回答

0

看看你的表defintion userpermissions_permissionid int NOT NULL,現在你插入一個varchar,它將在內部轉換爲0.因此,第二次查詢會導致重複鍵錯誤,因爲第一次插入後鍵「0-angel」已經存在。您技術上將兩個查詢中的值插入到表中。

+0

啊,好抓。這就是我改變設計而不徹底的原因。 –