mysql - 如何忽略 "Cannot add or update a child row"错误

标签 mysql sql database foreign-keys

我的备份文件中有一个 sql 查询,它有大量的插入语句。

INSERT INTO tns_spo_hotel (id_spo, id_hotel) VALUES (523,149),(523,195), ...

我在两列上都有一个外键。

当我运行这个查询时,它返回

#1452 - Cannot add or update a child row: a foreign key constraint fails (`tsakhkad_tour_new`.`tns_spo_hotel`, CONSTRAINT `tns_spo_hotel_22` FOREIGN KEY (`id_hotel`) REFERENCES `tns_hotel` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)

因为有些行缺少值。

是否可以忽略该错误消息并继续执行 sql?

最佳答案

Is it possible to ignore that error message and continue sql execution ?

简短的回答是

您不能忽略错误并继续使用这些无效值。因为这就是外键约束的作用。这就是为什么他们称之为约束。它们确保数据的一致性。如果您可以忽略这些违反外键引用的值,您的数据将变得不一致。

唯一可能的方法是删除外键约束。但您不应该那样做,而是修正您的数据输入。

关于mysql - 如何忽略 "Cannot add or update a child row"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13210016/

相关文章:

database - K 表示对数据进行聚类或排序

mysql - 获取 3 天后到期的行

php - 转换为数组的最佳字符串格式是什么?

php - 查询 m-d-Y 时显示 SQL 结果中的年份

mysql - 正确嵌套 SQL 查询

c# - 通过 C# 转义 SQL INSERT INTO 中的特殊字符

java - 数据库表中的多语言字段

mysql - 从 MySQL 连接表中获取一列

PHP MySQL 准备好的语句 : Execute dies, 既不返回 true 也不返回 false

sql - 如何建立从本地到 SQL Azure 数据库的安全连接字符串