2016-05-01 89 views
0

下面是關於MySQL創建表我的SQL語句,但還是警告說,有重複鍵(我無法找到任何一個被複制?創建表上的MySQL重複鍵?

CREATE TABLE EmployeeSkill (
    empId Integer NOT NULL, 
    skillId Integer NOT NULL, 
    skillLevel Integer NULL, 
    CONSTRAINT empSkillPk PRIMARY KEY(empId, skillId), 
    CONSTRAINT empFk FOREIGN KEY(empId) REFERENCES Employee(empId), 
    CONSTRAINT skillFk FOREIGN KEY(skillId) REFERENCES Skill(skillId) 
) 

不知道爲什麼...任何人有什麼線索?

+0

@問題是我無法在此創建語句中找到重複項。 –

+0

@Harry正在創建表格。 –

回答

0

我發現。它! 我用我的數據庫

select * 
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
where CONSTRAINT_TYPE = 'FOREIGN KEY' 

下面的語句我發現,其他表所佔用的外鍵。只需簡單地使用其他外鍵,它就可以工作。

0

你在表的主鍵:PRIMARY KEY(empId, skillId)這個錯誤意味着將empIdskillId已經存在於表中該組合可以檢查它

SELECT * 
FROM EmployeeSkill 
WHERE empId = @insertEmpId AND skillId = @insertSkillId 
+0

問題是我沒有EmployeeSkill表,但怎麼可能重複呢?! –

+0

您正在使用外鍵。 MySQL將檢查父表是否具有引用列上的唯一索引。 'Employee'的'empId'主鍵? ''技能''skillId'?如果是這樣,在正常情況下,你不會在這個列中有重複的值。但也許這些不是唯一的/主鍵? – Andrew