[英]Is FOR EACH STATEMENT Supported in Trigger?
閱讀文檔后,認為For Each Statement
涵蓋For Each Row
並且效率更高,因此我創建了一個通用觸發器editts
並應用於所有包含列編輯的表(代表沒有時區的編輯時間戳,所以我們知道該記錄何時更新) .
CREATE FUNCTION public._tr_updateeditts()
RETURNS trigger
LANGUAGE 'plpgsql'
AS $BODY$
begin
new.editts = now();
return new;
end;
$BODY$;
create trigger _tr_updateeditts_tbl_product before update
on public.product -- table product has column [editts]
for each statement execute procedure public._tr_updateeditts();
但是, product.editts
永遠不會更新。 將上述內容更改for each row
作品。 我的 Postgresql 是 v12
您不能修改語句級觸發器中的數據,並且不會設置變量NEW
。 為此,您需要一個行級觸發器。
語句級觸發器可能更有效,因為它們不會為每一行調用,但如果您需要修改每一行,則只有行級觸發器可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.