Postgres库分批次批量导出一张表到另一张表中

Postgres库分批次批量导出一张表到另一张表中

这个是pg库的函数模板,总是记不住啊

--PG库函数模板 
create or replace function 
func_name(v_batchcount integer)  --参数名称和参数类型  
return boolean   --返回参数类型
as $BODY$
declare 
--声明变量
begin 
--函数逻辑

return  true; --返回值
end;-- 结束
$BODY$ language plpgsql 

这块就是实例了,传参为导入到另一张表的次数,修改outtable和inputtable就行了

CREATE OR REPLACE FUNCTION p_fx ( v_batchcount INTEGER ) RETURNS boolean AS $BODY$ 

DECLARE
	v_sumcount INTEGER;--总行数
	v_singlebatchcount INTEGER;	--单次导出行数
BEGIN
	--查出总行数
	SELECT count( * ) INTO v_sumcount FROM outputtable;
	--得到每次需要迁库的数量
	v_singlebatchcount = v_sumcount / v_batchcount;
	--开始遍历循环次数
	FOR i IN 0..v_batchcount
	LOOP
		--打印出值到控制台
		raise notice '%',i * v_singlebatchcount;
		--进行插入
		insert into inputtable  SELECT *  FROM outputtable 
		LIMIT v_singlebatchcount OFFSET i * v_singlebatchcount ;
	END loop;
	--返回值
	Return true;
END;
$BODY$ LANGUAGE plpgsql 

调用上面函数

select * from p_fx(2)
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值