Postgresql
嘗試使用函式更新值時 Postgres 中的“無效事務終止”
我是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”!