有外键约束的时候我们应该怎么样写入数据呢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有外键约束的时候我们应该怎么样写入数据呢相关的知识,希望对你有一定的参考价值。

参考技术A 有外键约束情况下,对表进行操作会报错:

如:

Cannot add or update a child row: a foreign key constraint fails (`dsp`.`dsp_rpt_olap_resource_info_daily`, CONSTRAINT `dsp_rpt_olap_resource_info_daily_ibfk_1` FOREIGN KEY (`partner_code`) REFERENCES `dsp_rpt_olap_partner_info_daily` (`partner_code`))

1、对于删除操作:

则需要先删除子表的数据,然后对父表进行删除操作,否则会报错。

2、对于插入数据操作:

网上找了很多方式,觉得这个比较方便点:

关闭外键检查 SET FOREIGN_KEY_CHECKS = 0;

插入数据后,

再开启外键检查 SET FOREIGN_KEY_CHECKS = 1;

外键主要是为了保持数据的完整性,具体后面再写一写外键的应用。

MySQL 如何删除有外键约束的表数据

在MySQL中删除一张表或一条数据的时候,出现
[Err] 1451 -Cannot deleteorupdatea parent row:
aforeignkeyconstraintfails (...)

这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。

禁用外键约束,我们可以使用:

SET FOREIGN_KEY_CHECKS=0;

然后再删除数据

启动外键约束,我们可以使用:
SET FOREIGN_KEY_CHECKS=1;

查看当前FOREIGN_KEY_CHECKS的值,可用如下命令:
SELECT @@FOREIGN_KEY_CHECKS;

以上是关于有外键约束的时候我们应该怎么样写入数据呢的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 如何删除有外键约束的表数据

MySQL 如何删除有外键约束的表数据

如何修改数据库中主外键约束的数据?

如何在有外键关系的表中删除数据

MySQL插入数据因外键约束失败?

SQL 怎样删除有外键约束的表