postgresql 循环函数的简单实现操作
我就废话不多说了,大家还是直接看代码吧~
createorreplacefunctionaa1(a1integer[],a2bigint)returns voidAS$$ declareiiinteger; declarenuminteger; begin II:=1; num=1; FORiiIN1..a2LOOP UPDATEstudentSET id=a1[num] WHEREcd_id=ii; num=num+1; if(num>6)then num=1; endif; endloop; end; $$LANGUAGEplpgsql; selectaa1(array[1,4,5,6,7,8],6742)
补充:数据库之postgreSql库的存储过程和循环总结
postgreSql库中存储过程模板
CREATEORREPLACEFUNCTIONp_fx_***(OUTv_rowINTEGER,OUTv_rotevarchar(50),OUTv_logvarchar(50)) AS$$ DECLARE BEGIN selectcount(*)intov_rowfrom*插入表的名字*; v_rote:='SUCCESS'; v_log:='SUCCESS'; END $$ LANGUAGEplpgsqlVOLATILE
postgreSql库中循环书写的模板,以实际开发中的sql为例
单层循环
do$$ declare***:=***; begin while***loop endloop; end$$;
declare--声明变量,如果声明了变量别忘了加分号;
双层循环
do$$ declare***:=***; begin while*循环条件*loop foriin1..12loop raisenotice'%',*变量名*; endloop; endloop; end$$;
raisenotice'%',变量名;这是输出语句类似于Java中的print。
将循环放到存储过程中
CREATEORREPLACEFUNCTIONp_fx_***(OUTv_rowINTEGER,OUTv_rotevarchar(50),OUTv_logvarchar(50)) AS$$ DECLARE BEGIN while*循环条件*loop foriin1..12loop raisenotice'%',*变量名*; endloop; endloop; selectcount(*)intov_rowfrom*插入表的名字*; v_rote:='SUCCESS'; v_log:='SUCCESS'; END $$ LANGUAGEplpgsqlVOLATILE
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。