我尝试编辑一个postgresql条目并立即将其删除。目的是将要更新的字段用作记录操作的触发参数。
如果我使用存储的函数,则说明一切正常。但是,如果我使用CTE,则无法删除记录。
with tmp as (
update users set by_user_id = '0004' where id = '0006' returning id
)
delete from users
using tmp
where users.id = tmp.id;
答案 0 :(得分:2)
不支持在单个语句中尝试两次更新同一行。只有一种修改发生,但要可靠地预测哪一种修改并不容易(有时甚至是不可能)。这也适用于删除在同一条语句中已更新的行:仅执行更新。