ALTER FUNCTION

ALTER FUNCTION —更改函数的定义

Synopsis

ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    action [ ... ] [ RESTRICT ]
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    RENAME TO new_name
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    SET SCHEMA new_schema
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    DEPENDS ON EXTENSION extension_name

where action is one of:

    CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
    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 FUNCTION更改函数的定义。

您必须拥有该函数才能使用ALTER FUNCTION。要更改函数的架构,您还必须对新架构具有CREATE特权。要更改所有者,您还必须是新拥有角色的直接或间接成员,并且该角色必须在函数的架构上具有CREATE特权。 (这些限制规定,更改所有者不会通过删除并重新创建功能来完成您无法做的任何事情.但是,超级用户仍然可以更改任何功能的所有权.)

Parameters

有关允许的参数名称和值的更多信息,请参见SETChapter 19

Examples

要将类型integer的功能sqrt重命名为square_root

ALTER FUNCTION sqrt(integer) RENAME TO square_root;

要将类型integer的函数sqrt的所有者更改为joe

ALTER FUNCTION sqrt(integer) OWNER TO joe;

要将类型integer的函数sqrt的模式更改为maths

ALTER FUNCTION sqrt(integer) SET SCHEMA maths;

要将类型integer的功能sqrt标记为依赖于 extensionsmathlib

ALTER FUNCTION sqrt(integer) DEPENDS ON EXTENSION mathlib;

要调整为功能自动设置的搜索路径:

ALTER FUNCTION check_password(text) SET search_path = admin, pg_temp;

要禁用功能的search_path自动设置:

ALTER FUNCTION check_password(text) RESET search_path;

现在,该函数将使用其调用者使用的任何搜索路径执行。

Compatibility

该语句与 SQL 标准中的ALTER FUNCTION语句部分兼容。该标准允许修改功能的更多属性,但不提供重命名功能,将功能设置为安全定义器,将配置参数值附加到功能或更改功能的所有者,架构或易变性的功能。 。该标准还需要RESTRICT关键字,该关键字在 PostgreSQL 中是可选的。

See Also

CREATE FUNCTION, DROP FUNCTION

上一章 首页 下一章