我从SQL转储导入数据库,我收到此错误:
Cannot add or update a child row: a foreign key constraint fails
(`database_name`.`#sql-808_37`, CONSTRAINT `FK_z_log_zemail` FOREIGN KEY (`ID_evn`)
REFERENCES `z_event` (`ID_evn`) ON DELETE SET NULL)
Operation failed with exitcode 1"
我知道这意味着子表中的外键不在父表z_event中,因此出错。
问题:
导入sql dump的过程是否从此行中止? (exitcode 1操作失败)
在不影响数据完整性的情况下,是否存在绕过此错误的“干净”方法?或者不涉及删除约束的任何其他解决方案?
为什么会这样?表之间的一些不良关系设置?就像从父表中删除某些内容一样,子表未更新?
sql转储是否有可能被破坏?或者这个错误很常见?我想知道我是否应该担心..
答案 0 :(得分:2)
数目:
这取决于您如何恢复数据库。如果你正在运行一个脚本制作插入它可能已经跳过了问题并继续,但如果你正在进行批量插入(使用COPY)它将完全失败。
无法清理旁路。
可能转储的顺序错误。所需的表位于引用它的表的下方(或之后)。在您的情况下,您必须确保首先加载z_event。
可能它已损坏,但根据我的经验,第3条是通常的解释。