CREATE DEFINER=`root`@`%` PROCEDURE `delete_sales_order_original_by_Id`()
BEGIN
DECLARE MINID INT;
DECLARE MAXID INT;
SELECT id INTO MINID FROM sales_order_header_original WHERE created>'2024-04-28' ORDER BY ID ASC LIMIT 1;
SELECT id + 3000 INTO MAXID FROM sales_order_header_original WHERE created>'2024-04-28' ORDER BY ID DESC LIMIT 1;
WHILE MINID <= MAXID DO
DELETE sodo
FROM
sales_order_header_original soho
LEFT JOIN sales_order_detail_original sodo ON soho.id = sodo.salesOrderId
WHERE soho.id >= MINID AND soho.id < MINID + 3000;
DELETE FROM sales_order_header_original WHERE id >= MINID AND id < MINID + 3000 ;
SET MINID = MINID + 3000;
END WHILE;
END
mysql 创建存储过程根据ID范围删除数据,防止大事务提交
最新推荐文章于 2024-06-18 21:52:50 发布