避免外键约束

时间:2013-12-11 05:37:02

标签: mysql

我有层次结构级别表1到7,每个表都有外键,下一级表有一列。

我的任务是在这些表中插入层次结构级别数据。

由于存在外键约束,我需要以相反的顺序插入数据,如l7,然后是l6,l5,....直到l1。

在一种情况下购买,我的数据仅为l3,l2,l1 ..

现在问题是 - 对于插入l3我没有l4的数据。

所以我得到了约束错误。

Cannot add or update a child row: a foreign key constraint fails

如何避免此错误。

2 个答案:

答案 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。

不确定它是否回答了你的问题。