mysql 创建存储过程根据ID范围删除数据,防止大事务提交
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
惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。
一代天骄,成吉思汗,只识弯弓射大雕。
俱往矣,数风流人物,还看今朝