postgreAssign在SQL中更新查询值给变量



我需要在PostgreSQL中插入一些行。但是在将行插入表之前,我应该使用update语句检查记录是否存在。如果update语句返回0行,则可以插入,否则可以跳过插入。我应该在PostgreSQL的。SQL文件中写SQL语句。

如何实现这一点?

在Oracle中,我们有如下格式:

declare
  i number;
begin
  update employees set status = 'fired' where name like '%Bloggs';
  i := sql%rowcount;
IF i ==0 THEN
insert statement here
end

如何在Postgres中实现这一点?

如果并发性对您来说不是问题,并且您希望在plpgsql函数中完成它,不如使用特殊变量FOUND:

DO
$do$
BEGIN
UPDATE employees SET status = 'fired' WHERE ... ;
IF NOT FOUND THEN
   -- insert statement here
END IF;
END
$do$

或者使用数据修改CTE:

  • 如果不存在则插入,否则在Netezza中更新
  • 优化INSERT/UPDATE/DELETE操作

如果并发性是相关的,请阅读正确的UPSERT解决方案。

  • 如何UPSERT (MERGE, INSERT…在PostgreSQL重复更新)?

相关内容

  • 没有找到相关文章

最新更新