MYSQL - 无法创建外键

时间:2009-11-19 06:40:19

标签: mysql mysql-error-1005

当我执行以下查询时,它会抛出错误,

alter table `ttis`.`users` 
add constraint `FK_Role_ID` FOREIGN KEY (`ROLE_ID`) REFERENCES `roles` (`ROLE_ID`)

错误:

Error Code : 1005
Can't create table 'ttis.#sql-9c_8a' (errno: 150)

1 个答案:

答案 0 :(得分:2)

看一下这篇文章:13.6.4.4. FOREIGN KEY Constraints并搜索“150”。它在这里说:

  

如果你重新创建一个表   掉线了,它必须有一个定义   符合外键   引用它的约束。它必须   拥有正确的列名称和类型,   它必须有索引   如前所述,引用的密钥。如果   这些都不满意,MySQL返回   错误号1005并指错误   150错误信息。

     

如果MySQL报告错误号1005   来自CREATE TABLE语句,以及   错误消息是指错误150,   表创建失败,因为a   外键约束不是   正确形成。同样,如果一个   ALTER TABLE失败,它引用   错误150,表示外键   定义会错误地形成   对于改变的桌子。您可以使用   SHOW ENGINE INNODB STATUS显示一个   最详细的解释   最近InnoDB中的外键错误了   服务器