Postgresql
觸發器使用過程還是函式?
PostgreSQL 版本 10 及之前使用術語“觸發過程”(https://www.postgresql.org/docs/10/plpgsql-trigger.html)。但後來的版本使用術語“觸發功能”。
更改該術語的原因是什麼?
觸發器一直使用函式,而不是過程。不幸的是,術語很模糊,許多人使用“儲存過程”作為函式和過程的總稱。
因此,廣泛使用的誤稱“過程”已經蔓延到需要函式名稱的
CREATE TRIGGER ... EXECUTE PROCEDURE
語法中。這只是學術上的麻煩,而 Postgres 只有功能,沒有程序。看:Postgres 11 最終添加了真正的SQL 過程,這將誤導性術語提升為一個真正的問題。所以手冊修正了它的措辭,並
CREATE TRIGGER ... EXECUTE FUNCTION
添加了正確的語法變體,這是未來的首選。出於兼容性原因,舊變體仍然被接受 - 並且會持續很長一段時間,直到最終可以永久放棄。有關的: