好好生活
  平平淡淡每一天

编辑

GaussDB 数据操作

处理大数据量

-- 批量插入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 
$$;
posted @ 2025-10-29 10:44  踏步  阅读(5)  评论(0)    收藏  举报