0

我用MySQL引擎InnoDB。我仔细检查了列的类型。但总是有:

Error Code: 1215. Cannot add foreign key constraint

我试过:

ALTER TABLE `mail`.`boxes`  
    ADD CONSTRAINT FK_id 
    FOREIGN KEY (id) 
    REFERENCES `mail`.`users` (id)
    ON UPDATE NO ACTION 
    ON DELETE NO ACTION; 

ALTER TABLE `mail`.`boxes` 
  ADD FOREIGN KEY (id)
  REFERENCES `mail`.`users` (id)

没有任何效果(((

请帮忙,我做错了什么(除了选择 MySQL :-))?

4

2 回答 2

0

要检查到底是什么问题,请使用:

SHOW ENGINE INNODB STATUS\G

有“最后一个外键错误”部分。看:http ://dev.mysql.com/doc/refman/5.0/en/innodb-monitors.html

我的猜测是数据类型 od mail.boxes (id) 和 mail.users (id) 不一样。(例如,一张表中的 smallint 和第二张表中的整数)。

您尝试创建 FK 的表中的数据也可能有问题(您的邮箱 ID 是否与现有用户的 ID 相同?)

于 2013-07-12T11:24:00.100 回答
0

如果表包含数据,那么您将无法添加外键删除表对象并重新创建使用下面的相同参考

MySQL中外键的基础知识?

于 2013-07-12T11:24:25.433 回答