我的备份文件中有一个 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/