Mysql alter语句

时间:2012-04-22 11:33:56

标签: mysql alter

这是我尝试连接两个表的alter语句:

ALTER TABLE my_contacts 
  CHANGE `profession` `profession_id`  INT NOT NULL, 
  ADD CONSTRAINT professions_profession_id_fk 
  FOREIGN KEY (profession_id) REFERENCES professions (profession_id)

我有以下错误:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`contacts`.<result 2 when explaining filename '#sql-1ca_73'>, CONSTRAINT `professions_profession_id_fk` FOREIGN KEY (`profession_id`) REFERENCES `professions` (`profession_id`))

任何人都可以指导我这是什么?我实际上是在学习如何编写sql,因为我一直使用工具。

2 个答案:

答案 0 :(得分:1)

这是一种关系冲突。更容易解决这个问题

  • 删除字段之间的关系
  • 改变表格
  • 再次添加关系时,请修复您收到的错误。

答案 1 :(得分:1)

您的外键约束失败。

您尝试创建的外键强制my_contacts中的每个profession_id都出现在您的职业表中。现在,情况并非如此。您应该在my_contacts中查找职业中不存在profession_id的所有记录,并首先修复这些记录。