Postgresql 函数例子
本业务是实现将之前已经使用的数据和现在的数据关联起来,需要写个sql函数初始化数据,数据库使用的是postgresql
具体代码
create or replace function insert_user_roles()
returns void as $$
declare
user RECORD;
role RECORD;
begin
for user in (select id from user where is_delete = false) loop
for role in (select * from role where is_delete = false) loop
insert into '实际要插入数据的表' ('字段')
values
(user.id, role.id);
end loop;
end loop;
end;
$$ language plpgsql;
select insert_user_roles();;
语法
业务需求是为已经在使用的用户初始化数据(模拟需求),学习语法就行,业务代码可以忽略掉。
loop关键字不能忽略,且要跟for循环对应上
声明的变量需要使用declare
begin end要对应上
因为我这个业务场景是不需要返回值的,如果需要有返回值的可以去参考pgsql文档也不是很难
查询*完全就是为了方便,实际业务操作建议不要这么操作
这篇博客介绍了如何在PostgreSQL中创建一个用于初始化数据的SQL函数。函数通过两个嵌套的for循环将用户和角色关联并插入到目标表中。虽然此示例不适用于大规模的实际业务操作,但它展示了PL/pgSQL的基本语法和流程控制结构,对于学习PostgreSQL函数的编写具有参考价值。
5906

被折叠的 条评论
为什么被折叠?



