首页 > 解决方案 > MySQL 使用 JOINS 和 LIMIT 删除

问题描述

我想分块删除,因此尝试将 LIMIT 与 JOINS 一起使用。下面的代码没有执行抛出错误。大约有 900+ 百万行需要删除。这是在带有 InnoDB 引擎的 MYSQL 5.7 上

有人可以帮忙吗?

DELETE a
FROM order_item_custom_data a
JOIN (
         SELECT oicd.* FROM order_item_custom_data oicd JOIN order o
         ON oicd.mfg_id = o.mfg_id AND oicd.catalog_id = o.catalog_id AND
         ocid.catalog_id = o.order_id
         WHERE o.order_date < '2020-01-01 00:00:00'
         ORDER BY oicd.order_item_custom_data_id
         LIMIT 100000;
) b ON a.mfg_id = b.mfg_id;

标签: mysql

解决方案


推荐阅读