MySQL错误1215:无法添加外键约束

我试图将我的新模式转发到我的db服务器上,但我不明白为什么会出现这个错误。我试图在这里搜索答案,但我找到的一切都表明要么将db引擎设置为Innodb,要么确保我尝试用作外键的键是它们自己表中的主键。如果我没有弄错的话,这两件事我都做过。你们还可以提供其他帮助吗

在服务器中执行SQL脚本
错误:错误1215:无法添加外键约束
-- -----------------------------------------------------
--表'Alternative_Pathways'。'Clients_拥有员工`
-- -----------------------------------------------------
如果不存在“备选路径”,则创建表。“客户”有“员工”(
`客户端\u案例\u编号'INT不为空,
`Staff_Emp_ID`INT不为空,
主键(`Clients\u Case\u Number`、`Staff\u Emp\u ID`),
索引“fk客户”有“员工1”和“idx”(“员工Emp ID”ASC),
索引“fk客户”有“员工客户”idx(“客户”案例编号“ASC”),
约束'fk_客户端\u具有\u工作人员\u客户端`
外键(`Clients\u Case\u Number`)
参考“备选路径”。“客户”(“案例编号”)
不删除任何操作
在没有行动的情况下,
约束'fk_客户端\u有\u员工\u员工1`
外键(`Staff\u Emp\u ID`)
参考“备选路径”。“员工”(“Emp\U ID”)
不删除任何操作
更新时(无操作)
引擎=InnoDB

SQL脚本执行完成:语句:7个成功,1个失败

下面是父表的SQL

如果不存在,则创建表“可选路径”。“客户端”(
`案例编号'INT不为空,
`名字`字符(10)空,
`中间名称'CHAR(10)NULL,
`姓氏'CHAR(10)NULL,
`地址'CHAR(50)空,
`电话号码'INT(10)空,
主键(`Case\u Number`)
引擎=InnoDB
如果不存在“可选路径”,则创建表。'Staff'(
`Emp_ID`INT不为空,
`名字`字符(10)空,
`中间名称'CHAR(10)NULL,
`姓氏'CHAR(10)NULL,
主键(`Emp\u ID`)
引擎=InnoDB

我猜客户.案例编号和/或员工.Emp\u ID客户的员工.客户的案例编号客户的员工.员工的Emp\u ID不完全相同

父表中的列可能是INT UNSIGNED

两个表中的数据类型必须完全相同

发表评论