如何将外键添加到MySQL表?

时间:2013-07-12 11:18:14

标签: mysql database foreign-keys foreign-key-relationship alter-table

我将MySQLInnoDB引擎一起使用。我仔细检查了列的类型。但总是有:

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 :-))?

2 个答案:

答案 0 :(得分: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相同?)

答案 1 :(得分:0)

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

Basics of Foreign Keys in MySQL?