postgres 使用函数批量分段删除

CREATE or REPLACE FUNCTION del_logs_datas() RETURNS text as 
$$
		DECLARE
			b_count int;

			 BEGIN
				b_count :=  10;
				while b_count > 0 LOOP
					DELETE FROM logs where time in (SELECT time FROM logs LIMIT 900000 OFFSET 0);
					b_count := b_count - 1;
				END LOOP;
				RETURN '删除成功!';
			 END;
$$
LANGUAGE plpgsql;

-- 执行分段批量删除
SELECT del_logs_datas();

猜你喜欢

转载自blog.csdn.net/XuHang666/article/details/81736656