跳到主要内容
版本:1.0.13

ALTER ROUTINE

ALTER 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_USER | SESSION_USER }

ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]

SET SCHEMA new_schema

ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]

DEPENDS ON EXTENSION extension_name

其中action是下列之一:

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


描述:

ALTER ROUTINE更改一个例程的定义,它可以是聚集函数、普通函数或者过程。参数的描述、更多的例子以及进一步的细节请参考ALTER AGGREGATE、ALTER FUNCTION以及ALTER PROCEDURE。


示例:

将类型integer的例程foo重命名为foobar:

ALTER ROUTINE foo(integer) RENAME TO foobar;

不管foo是聚集、函数还是过程,这个命令都能使用。


另见:

ALTER AGGREGATE, ALTER FUNCTION, ALTER PROCEDURE, DROP ROUTINE注意没有CREATE ROUTINE命令。