This is a cached version of https://postgresql.org/docs/current/sql-alterroutine.html from 2/28/2026, 3:16:32 PM.
PostgreSQL: Documentation: 18: ALTER ROUTINE
ALTER ROUTINE ALTER ROUTINE — change the definition of a routine Synopsis ALTER ROUTINE name [ ( [ [ argmode …
February 26, 2026: PostgreSQL 18.3, 17.9, 16.13, 15.17, and 14.22 Released! Documentation → PostgreSQL 18 Supported Versions: Current (18) / 17 / 16 / 15 / 14 Development Versions: devel Unsupported versions: 13 / 12 / 11 ALTER ROUTINE Prev Up SQL Commands Home Next ALTER ROUTINE ALTER ROUTINE — change the definition of a routine Synopsis ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] action [ ... ] [ RESTRICT ] ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] RENAME TO new_name ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] SET SCHEMA new_schema ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [ NO ] DEPENDS ON EXTENSION extension_name where action is one of: IMMUTABLE | STABLE | VOLATILE [ NOT ] LEAKPROOF [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER PARALLEL { UNSAFE | RESTRICTED | SAFE } COST execution_cost ROWS result_rows SET configuration_parameter { TO | = } { value | DEFAULT } SET configuration_parameter FROM CURRENT RESET configuration_parameter RESET ALL Description ALTER ROUTINE changes the definition of a routine, which can be an aggregate function, a normal function, or a procedure. See under ALTER AGGREGATE, ALTER FUNCTION, and ALTER PROCEDURE for the description of the parameters, more examples, and further details. Examples To rename the routine foo for type integer to foobar: ALTER ROUTINE foo(integer) RENAME TO foobar; This command will work independent of whether foo is an aggregate, function, or procedure. Compatibility This statement is partially compatible with the ALTER ROUTINE statement in the SQL standard. See under ALTER FUNCTION and ALTER PROCEDURE for more details. Allowing routine names to refer to aggregate functions is a PostgreSQL extension. See AlsoALTER AGGREGATE, ALTER FUNCTION, ALTER PROCEDURE, DROP ROUTINE Note that there is no CREATE ROUTINE command. Prev Up Next ALTER ROLE Home ALTER RULE Submit correction If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.