创建一个包含fk的新表和已包含数据的现有表

时间:2011-03-03 17:12:10

标签: database foreign-keys constraints

我实际上正在管理和更新数据库在MySQL Server 5.x上的Web应用程序,并且所有表都是InnoDB,当我需要创建一个带有引用现有的外键的新表时,我的问题出现了一个有实时数据。当我尝试执行create命令时,它会抛出着名的errno 1005,如果我删除父表的所有信息,创建子表并在父亲上重新加载数据,问题就解决了(我认为这是限制因素)。如果父表有一个包含数据的祖父表,这将是一个痛苦。

我想知道是否有办法轻松完成这项任务,也许是一个包含忽略约束的命令?

1 个答案:

答案 0 :(得分:0)

从MySQL文档中我可以看到,您可以尝试使用

SET foreign_key_checks = 0

我遇到的案例并不总是有效。

您的下一个最佳选择是使数据符合FK约束所需的数据,然后应用约束。将FK约束添加到已有数据的表时,这不一定不常见。