我有以下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()
只调用了一次.