我正在尝试删除一些记录,但收到以下错误:
无法删除或更新父行:外键约束失败
问题是,我希望删除的100条记录中只有1或2条中的外键约束失败。我希望编写一个删除这些98-99记录的查询, 跳过失败的 的1或2,我稍后可以手动检查和删除/修改。不是因为一些有问题的记录而停止,而是继续其他人,忽略了这一点。
有没有一种巧妙的方法可以做到这一点?
答案 0 :(得分:7)
您必须LEFT JOIN
引用表并添加一个条件,表示该表中缺少该行。
例如:
DELETE a FROM a
LEFT JOIN b ON b.a_id = a.id
WHERE b.a_id IS NULL;
答案 1 :(得分:2)