Database 创建启用fk的新表以及已包含数据的现有表

Database 创建启用fk的新表以及已包含数据的现有表,database,foreign-keys,constraints,Database,Foreign Keys,Constraints,实际上,我正在管理和更新一个Webapp,它的数据库位于MySQL Server 5.x上,所有表都是InnoDB,当我需要创建一个新表时,我的问题就出现了,该表带有引用现有表的外键,并且哪个表有实时数据。当我尝试执行create命令时,它抛出了著名的errno 1005,如果我删除父表的所有信息,创建子表并在父表上重新加载数据,问题就解决了。我想这是为了约束。如果父表有一个祖父表,并且它也包含数据,这将是一个难题 我想知道是否有一种方法可以轻松完成这项任务,也许是一个包含忽略约束的命令?从My

实际上,我正在管理和更新一个Webapp,它的数据库位于MySQL Server 5.x上,所有表都是InnoDB,当我需要创建一个新表时,我的问题就出现了,该表带有引用现有表的外键,并且哪个表有实时数据。当我尝试执行create命令时,它抛出了著名的errno 1005,如果我删除父表的所有信息,创建子表并在父表上重新加载数据,问题就解决了。我想这是为了约束。如果父表有一个祖父表,并且它也包含数据,这将是一个难题


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

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

SET foreign_key_checks = 0
我曾遇到过这样的案例,但并不总是奏效

下一个最佳选项是使数据符合FK约束的要求,然后应用约束。将FK约束添加到已有数据的表中时,这种情况并不一定少见