您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用Postgres 8.4中的每一行调用一次函数进行更新

使用Postgres 8.4中的每一行调用一次函数进行更新

您是否尝试过Postgres的非标准UPDATE .. FROM条款?我想这会起作用

update mytable
   set a = first_part(gen.id),
       b = second_part(gen.id),
       c = third_path(gen.id)
  from (
          select genid() as genid, id
          from mytable 
          where package_id = 10
       ) gen
 where mytable.id = gen.id;
 --and package_id = 10 -- This predicate is no longer necessary as the subquery
                       -- already filters on package_id, as Erwin mentioned

请注意,我强制在子选择内genid()每个记录仅被调用一次mytable。然后,我将自我加入mytablegen使用一个假设的id专栏。请参阅此处的文档:

http://www.postgresql.org/docs/current/interactive/sql- update.html

Postgres 2022/1/1 18:38:46 有285人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶