处理大数据量
-- 批量插入1000条数据
DO $$
DECLARE
batch_size INT := 1000;
BEGIN
WHILE TRUE LOOP
-- 插入数据sql
INSERT INTO target_table (column1, column2) values (batch_size,"111");
--循环判断条件
batch_size := batch_size-1;
IF batch_size = 0 THEN
EXIT;
END IF;
END LOOP;
COMMIT; -- 每批提交一次事务
END
$$;
-- 每次插入 1000 条记录(需结合应用层实现)
DO $$
DECLARE
batch_size INT := 1000;
offset INT := 0;
BEGIN
WHILE TRUE LOOP
INSERT INTO target_table (column1, column2)
SELECT column1, column2
FROM source_table
LIMIT batch_size
OFFSET offset;
IF NOT FOUND THEN
EXIT;
END IF;
COMMIT; -- 每批提交一次事务
offset := offset + batch_size;
END LOOP;
END
$$;