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>

where <action> is one of (depending on the type of routine):

    { IMMUTABLE | STABLE | VOLATILE }
    [ NOT ] LEAKPROOF
    { [EXTERNAL] SECURITY INVOKER | [EXTERNAL] SECURITY DEFINER }
    PARALLEL { UNSAFE | RESTRICTED | SAFE }
    EXECUTE ON { ANY | COORDINATOR | ALL SEGMENTS | INITPLAN }
    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 AGGREGATEALTER FUNCTIONALTER PROCEDURE

示例

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

ALTER ROUTINE foo(integer) RENAME TO foobar;

无论 foo 是聚合函数、函数还是过程,此命令均可正常执行。

兼容性

该语句与 SQL 标准中的 ALTER ROUTINE 语句部分兼容。更多详情请参阅ALTER FUNCTIONALTER PROCEDURE。允许例程名称引用聚合函数属于 YMatrix 数据库扩展功能。

另见

ALTER AGGREGATE, ALTER FUNCTION, ALTER PROCEDURE, DROP ROUTINE