跳转到主要内容

alter_routine

ALTER ROUTINE

ALTER ROUTINE

7

SQL - Language Statements

ALTER ROUTINE

change the definition of a routine

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 ???, ???, and ??? 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 ??? and ??? for more details. Allowing routine names to refer to aggregate functions is a PostgreSQL extension.

See Also

Note that there is no CREATE ROUTINE command.