小编Ric*_*Ree的帖子

从mysql表中删除所有未引用(通过外键)的记录

我有一个地址表,它是从其他 6 个表(有时是多个表)引用的。其中一些表大约有 50 万条记录(地址表大约有 750000 条记录)。我想要运行一个定期查询,删除任何表中未引用的所有记录。

以下子查询不是一个选项,因为查询永远不会完成 - 范围太大。

delete from address where address_id not in (select ...)
and not in (select ...) and not in (select ...) ...
Run Code Online (Sandbox Code Playgroud)

我希望我可以使用外键约束,并且可以简单地删除外键约束不会阻止我的所有记录(因为没有对表的引用)。我找不到办法做到这一点(或者有吗?)。还有其他好主意来解决这个问题吗?

mysql database

5
推荐指数
1
解决办法
3169
查看次数

标签 统计

database ×1

mysql ×1