Postgresql

嘗試使用函式更新值時 Postgres 中的“無效事務終止”

  • August 27, 2020

我是postgres的新手。我定義了一個這樣的函式:

CREATE OR REPLACE FUNCTION increment_count() 
 RETURNS TRIGGER LANGUAGE plpgsql 
 AS $$
  BEGIN 
    UPDATE posts SET count=count+1 WHERE pid=NEW.pid;
  COMMIT;
  END;
 $$;

這給了我錯誤invalid transaction termination

您不能在觸發器中送出,並且您忘記了 return 語句。

CREATE OR REPLACE FUNCTION increment_count() 
 RETURNS TRIGGER LANGUAGE plpgsql 
 AS $$
   BEGIN 
     UPDATE posts SET count=count+1 WHERE pid=NEW.pid;
     return null;
   END;
 $$;

如果是 BEFORE 觸發器,則應使用“return NEW”!

引用自:https://dba.stackexchange.com/questions/274383