批量删除数据
1. 游标方式删除,效率低下
2. 把最后留下的数据导出,truncate table,然后倒入数据,这种方式会对应用有影响
3. 建一个存储过程来做批量删除,或者写一个类似的shell
CREATE PROCEDURE purgeInventory(IN dt DATE)
BEGIN
DECLARE SQLCODE INTEGER;
loop: LOOP
DELETE FROM (SELECT 1 FROM Inventory WHERE InvDate <= dt FETCH FIRST 1000 ROWS ONLY) AS D;
IF SQLCODE = 100 THEN
LEAVE loop;
END IF;
COMMIT;
END LOOP loop;
END
CALL purgeInventory('2003-10-01')