这是我在MySQL上创建表的SQL语句,但我收到警告说有重复的密钥(我找不到任何重复的文件?!
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)
表格中有主键:PRIMARY KEY(empId, skillId)
。此错误表示表中已存在插入empId
和skillId
的组合。你可以检查一下
SELECT *
FROM EmployeeSkill
WHERE empId = @insertEmpId AND skillId = @insertSkillId
答案 1 :(得分:0)
我找到了! 我在我的数据库中使用以下语句
select *
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
where CONSTRAINT_TYPE = 'FOREIGN KEY'
我发现其他表占用了外键。只需简单地使用其他外键,就行了。