【问题标题】:How to Ignore "Cannot add or update a child row" error如何忽略“无法添加或更新子行”错误
【发布时间】:2012-11-03 14:21:07
【问题描述】:

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

插入tns_spo_hotelid_spoid_hotel)值 (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?

【问题讨论】:

    标签: mysql sql database foreign-keys


    【解决方案1】:

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

    简短的回答是

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

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

    【讨论】:

    • ...你不想这样做。
    • 我意识到了!我只是在你的最后一句话中添加了一些额外的东西,你现在已经自己完成了:-)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 2018-08-11
    相关资源
    最近更新 更多