小编Cez*_*usz的帖子

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

我有以下UPDATE语句:

update mytable
   set a = first_part(genid()),
       b = second_part(genid()),
       c = third_path(genid())
 where package_id = 10;
Run Code Online (Sandbox Code Playgroud)

在这个例子中genid(),每行调用三次函数,这是错误的 - 我希望每行只调用一次mytable.

我正在使用PostgreSQL 8.4数据库.如何写正确的更新?

我尝试过这样的事情:

update mytable
   set a = first_part(g),
       b = second_part(g),
       c = third_path(g)
 where package_id = 10
  from genid() as g;
Run Code Online (Sandbox Code Playgroud)

但它没有用,因为整个更新声明genid()只调用了一次.

sql database postgresql sql-update

6
推荐指数
1
解决办法
4387
查看次数

标签 统计

database ×1

postgresql ×1

sql ×1

sql-update ×1