我想使用UPDATE RETURNING来确保要更新的记录存在。如果没有,我将退货。我不需要花哨的时间,因为我的查询很少会运行。我以为我会用这样的东西:
if UPDATE my_table SET my_field = 1 WHERE my_key = 12345 RETURNING my_field is NULL then
perform do_something()
end if;
应该可以,但是我认为如果将其设为布尔表达式,可能会更干净,因此我在pgAdmin SQL窗口中尝试了此操作:
update charge set pred_heat_time = 12345 where charge = 99999 returning (pred_heat_time is null)
我很惊讶地看到此表达式返回null而不是true。为什么这样做?