Postgresql

觸發器使用過程還是函式?

  • February 15, 2022

PostgreSQL 版本 10 及之前使用術語“觸發過程”(https://www.postgresql.org/docs/10/plpgsql-trigger.html)。但後來的版本使用術語“觸發功能”。

更改該術語的原因是什麼?

觸發器一直使用函式,而不是過程。不幸的是,術語很模糊,許多人使用“儲存過程”作為函式和過程的總稱。

因此,廣泛使用的誤稱“過程”已經蔓延到需要函式名稱的CREATE TRIGGER ... EXECUTE PROCEDURE語法。這只是學術上的麻煩,而 Postgres 只有功能,沒有程序。看:

Postgres 11 最終添加了真正的SQL 過程,這將誤導性術語提升為一個真正的問題。所以手冊修正了它的措辭,並CREATE TRIGGER ... EXECUTE FUNCTION添加了正確的語法變體,這是未來的首選。出於兼容性原因,舊變體仍然被接受 - 並且會持續很長一段時間,直到最終可以永久放棄。

有關的:

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