postgresql函数批量插入数据

批量插入用户信息为例:

第一种写法:

CREATE or REPLACE FUNCTION insert_user()
--创建函数并指定函数名称;or REPLACE:是可选的,它允许您修改/替换现有函数。
RETURNS setof record
--RETURNS:申明返回值类型,可以是基础,复合或域类型,或者也可以引用表列的类型。
AS $body$--固定格式
DECLARE--申明变量、设定初始值
a BIGINT:=1628990938823295000;
b INT :=0;

BEGIN
WHILE
a<=1628990938823295100
and
b<=100
LOOP--执行
a := a+1;
b := b+1;
INSERT INTO sys_user(id,tenant_id,user_name,is_special_user,status,del_flag,create_time,create_by)
VALUES(a,'QL0001','AA' || b,0,0,0,'2022-05-24 14:47:01.746',0);

--'AA' || b:是字符串拼接
END LOOP;--执行结束

END
$body$--固定格式

LANGUAGE plpgsql;--指定实现这个函数的语言

SELECT insert_user();--调用函数

DROP FUNCTION insert_user();--删除函数

 

第二种写法

DO $$
DECLARE
i integer := 0;
BEGIN 
WHILE i < 5 LOOP
i := i + 1;
INSERT INTO sys_user(id,tenant_id,user_name,is_special_user,status,del_flag,create_time,create_by) VALUES(i,'QL0001','AA' || i,0,0,0,'2022-05-24 14:47:01.746',0);
RAISE NOTICE 'Loop: %', i;
END LOOP;
END $$;

 

posted @ 2022-06-14 15:06  Testing子夜  阅读(2618)  评论(0)    收藏  举报