postgresql如何更新插入一起判断执行??

2025-03-04 16:27:11
推荐回答(1个)
回答1:

可以先执行update语句(update的条件是存在的判断条件),然后调用get diagnostics获得上一个SQL语句执行所影响的行数,如果影响行数为0,则说明不存在,那么再执行insert语句。

结构类似:

declare
v_cnt integer;
begin
  update ....   -- 执行更新语句
  where ...; -- 这里的条件是存在的判断条件
  get diagnostics v_cnt = row_count;    -- 将影响行数的值赋给v_cnt
  if v_cnt = 0 then
    insert into ...;    -- 执行插入语句
  end if;
end;