2012-11-03 20 views
1

我有我的备份文件中的sql查询,它有大量的插入语句。如何忽略“无法添加或更新子行”错误

INSERT INTO tns_spo_hotelid_spoid_hotel)VALUES (523149),(523195),...

我有两列的外键。

当我运行此查询,它返回

#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?

回答

4

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

简答题是

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

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

+0

......你不想这样做。 – Ben

+0

我意识到了!我只是在最后一句中增加了一些额外的东西,现在你已经完成了自己的工作:-)。 – Ben

相关问题