A procedure is a an executable unit of code that can interact with transaction boundaries. It can commit a piece of work, roll back another piece of work, and so on. Procedures were introduced with PostgreSQL 11, and are first-class entities. A procedure is declared in a way that is similar to functions and can be implemented in any supported language. However, a procedure has fewer properties than a function and has no concept of stability, cost, or estimated return values.
Procedures are created with the CREATE PROCEDURE statement, which also supports the OR REPLACE clause. A procedure has a name, an argument list, and an implementation body. A typical procedure template looks as follows:
CREATE OR REPLACE PROCEDURE <procedure_name>( <arguments> )
AS <block-of-code>
LANGUAGE <implementation-language>;
A procedure is uniquely identified by the...