删除所有MySQL外键约束不失败的地方

发布于 2024-11-28 12:49:36 字数 269 浏览 1 评论 0原文

我试图删除一些记录,但收到以下错误:

无法删除或更新父行:外键约束失败

问题是,对于我希望删除的 100 条记录中的 1 条或 2 条,外键约束失败。我希望编写一个删除这 98-99 条记录的查询,跳过失败的 1 条或 2 条,我可以稍后手动检查并删除/修改这些记录。不会因为某个有问题的记录而停止,而是继续处理其他记录,忽略它。

有没有一种巧妙的方法来做到这一点?

I am trying to delete a few records but am getting the following error:

Cannot delete or update a parent row: a foreign key constraint fails

The thing is, the foreign key constraint is failing for only 1 or 2 of my 100 records I wish to delete. I wish to write a query which deletes these 98-99 records, skipping the 1 or 2 which failed, which I can later manually inspect and delete/modify. Not stopping because of some single problematic record, but continuing with the others, ignoring that.

Is there a neat way to do this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甚是思念 2024-12-05 12:49:36

您必须LEFT JOIN引用表并添加一个条件,说明该表中缺少该行。

例如:

DELETE a FROM a
LEFT JOIN b ON b.a_id = a.id
WHERE b.a_id IS NULL;

You have to LEFT JOIN the referencing table and add a condition saying that the row is missing in that table.

For example:

DELETE a FROM a
LEFT JOIN b ON b.a_id = a.id
WHERE b.a_id IS NULL;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文