我想将外键添加到我的表中,但收到此错误。 错误代码:1005无法创建表'william。#sql-88c_3'(errno:150) 我有3个表。员工,客户和合同。MySQL错误代码:1005
雇工[employee_no PK],客户端[CUSTOMER_NO PK]合同[contract_no PK] 我想有合同外键合同[contract_no PK,employee_no FK],CUSTOMER_NO FK]
我试着做直接失败,我现在正在尝试alter语句。Alter脚本有什么问题吗?
ALTER TABLE contract
ADD CONSTRAINT `employee_no_fk2` FOREIGN KEY (`employee_no`) REFERENCES `employee`
(`employee_no`);
ALTER TABLE contract
ADD CONSTRAINT `Customer_no_fk2` FOREIGN KEY (`Customer_no`) REFERENCES `client`
(`Customer_no`);
第二个链接非常有帮助。我试图添加一个外键与删除设置null,但我的目标列没有null约束,这是给我这个问题。我可以通过'SHOW引擎innodb STATUS;'命令找出问题。 – 2013-07-29 08:40:50
第二链接ftw!我按照他的描述:“我遇到的最常见的变化是主键列使用int无符号数据类型,而外键列使用int数据类型,InnoDB Engine停止这个当然,你可以通过改变外键数据类型来修改它以匹配int无符号数据类型。“ – 2014-02-04 00:43:25