我有层次结构级别表1到7,每个表都有外键,下一级表有一列。
我的任务是在这些表中插入层次结构级别数据。
由于存在外键约束,我需要以相反的顺序插入数据,如l7,然后是l6,l5,....直到l1。
在一种情况下购买,我的数据仅为l3,l2,l1 ..
现在问题是 - 对于插入l3我没有l4的数据。
所以我得到了约束错误。
Cannot add or update a child row: a foreign key constraint fails
如何避免此错误。
答案 0 :(得分:1)
在Mysql中
SET FOREIGN_KEY_CHECKS=0;
这是一个基于会话的声明。
这是暂时中断外键约束。有时需要以修改过程中需要破坏参照完整性的方式更改数据。
了解更多详情 http://www.sqlines.com/mysql/set_foreign_key_checks
http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_foreign_key_checks
答案 1 :(得分:0)
如果我已经按照你的例子正确地理解了你的关系,那么I3有一个列是指I4那列是外键。现在,如果在插入I3时没有外键值,则可以在该外键列中插入null。
不确定它是否回答了你的问题。