当前位置:   article > 正文

PostgreSQL通过过程函数执行update语句_pg中一个update语句执行的过程

pg中一个update语句执行的过程

PostgreSQL通过过程函数执行update语句

以某一查询结果作为更新结果

  1. update t_infe set name = (
  2. select t_pub.name from t_pub where t_pub.id = 21
  3. )
  4. -- update语句的限制条件
  5. where t_infe.t_pub = 21;

该写法要求select语句只能返回一个一行一列的结果集。updatewhere条件是必不可少的,select语句的where条件只是用来限制查询的结果集的,不要误认为是update语句的限制条件。如果缺少update语句的where限制条件,会将全部的记录进行更新。

现在将上面的语句应用到过程当中去。

  1. create or replace procedure public.init_t_inf_pub()
  2. language plpgsql
  3. as $procedure$
  4. begin
  5. for i in 1..100 loop
  6. update t_infe set name = (
  7. select t_pub.name from t_pub where t_pub.id = i
  8. )
  9. where t_infe.t_pub = i;
  10. end;
  11. $procedure$
  12. call init_t_inf_pub();

该过程在for循环内写死了起止范围,这不重要。该过程的作用是动态地将t_pub.id从1到100的记录中的name字段的值对应地,对应地,对应地添加到t_infe中去。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/619135
推荐阅读
相关标签
  

闽ICP备14008679号