PostgreSQL version 10 and before use the term "Trigger Procedure" (https://www.postgresql.org/docs/10/plpgsql-trigger.html). But later versions use the term "Trigger Function".

What is the reason for changing that term?

1 Answer 1


Triggers have always been using functions, not procedures. Unfortunately, the terminology is fuzzy, many use "stored procedure" as umbrella term for both functions and procedures.

Thus the widespread misnomer "procedure" had crept in, spreading even to the syntax of CREATE TRIGGER ... EXECUTE PROCEDURE where a function name is required. That was a merely academic nuisance while Postgres only had functions, not procedures. See:

Postgres 11 eventually added true SQL procedures, which elevated that misleading terminology to a real problem. So the manual fixed its wording, and the proper syntax variant CREATE TRIGGER ... EXECUTE FUNCTION was added, which is preferred going forward. The old variant is still accepted for compatibility reasons - and will be for quite a while longer until that can finally be dropped for good.


  • OK thanks, it's looks like C-Pascal blended terms Commented Feb 15, 2022 at 12:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.