MySQL错误代码:1005

Geo*_*ume 3 mysql sql mysql-error-1005

我试图将外键添加到我的表但收到此错误.错误代码:1005无法创建表'william.#sql-88c_3'(错误号:150)我有3个表.员工,客户和合同.

雇员[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`);
Run Code Online (Sandbox Code Playgroud)

Nag*_*tri 10

大多数此类错误都与数据类型未命中匹配有关.如果你可以通过这些链接..它可能会帮助你我猜... 检查 - 这 也... 检查 - 这

正如他们在第二个链接中所说:

您应该首先看的是外键和主键列之间的数据类型是否一致.

mysql> SHOW engine innodb STATUS;

------------------------
LATEST FOREIGN KEY ERROR
------------------------
100130 17:16:57 Error IN FOREIGN KEY CONSTRAINT OF TABLE sampledb/#sql-4a0_2:
FOREIGN KEY(member_type)
REFERENCES common_lookup(common_lookup_id):
Cannot find an INDEX IN the referenced TABLE WHERE the
referenced COLUMNS appear AS the FIRST COLUMNS, OR COLUMN types
IN the TABLE AND the referenced TABLE do NOT MATCH FOR CONSTRAINT.
Run Code Online (Sandbox Code Playgroud)