400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
快速上手
集群部署
SQL参考
工具指南
修改函数的定义。
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
ALTER FUNCTION name ( [ [argmode] [argname] argtype [, ...] ] )
SET SCHEMA new_schema
其中 action 是:
{CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT}
{IMMUTABLE | STABLE | VOLATILE | [ NOT ] LEAKPROOF}
{[EXTERNAL] SECURITY INVOKER | [EXTERNAL] SECURITY DEFINER}
EXECUTE ON { ANY | MASTER | ALL SEGMENTS | INITPLAN }
COST execution_cost
SET configuration_parameter { TO | = } { value | DEFAULT }
SET configuration_parameter FROM CURRENT
RESET configuration_parameter
RESET ALL
ALTER FUNCTION 修改函数的定义。
你必须是函数的所有者才能使用 ALTER FUNCTION。为了修改函数的模式,你还必须 在新模式下拥有 CREATE 权限。为了修改所有者,你还必须是新角色的直接或间接成员, 而且那个角色必须在函数模式上有用 CREATE 的权限。这些限制强制执行改变所有者不会通过删除和重新创建函数做任何你不能做的事情,但是,超级用户无论如何都可以改变任何函数的所有权。
name
argmode
argname
argtype
new_name
new_owner
new_schema
CALLED ON NULL INPUT
RETURNS NULL ON NULL INPUT
STRICT
IMMUTABLE
STABLE
VOLATILE
[ EXTERNAL ] SECURITY INVOKER
[ EXTERNAL ] SECURITY DEFINER
LEAKPROOF
EXECUTE ON ANY
EXECUTE ON MASTER
EXECUTE ON ALL SEGMENTS
EXECUTE ON INITPLAN
COST execution_cost
configuration_parameter
value
RESTRICT
YMatrix 数据库对某些定义的函数有 STABLE 或者 VOLATILE 这样的限制。 参阅 CREATE FUNCTION 来获取更多信息。
将 integer 类型的函数 sqrt 重命名为 square_root:
ALTER FUNCTION sqrt(integer) RENAME TO square_root;
更改 integer 类型的 sqrt 函数的所有者为 joe
ALTER FUNCTION sqrt(integer) OWNER TO joe;
更改 integer 类型的函数 sqrt 的 模式 为 math:
ALTER FUNCTION sqrt(integer) SET SCHEMA math;
要调整一个函数的自动搜索路径:
ALTER FUNCTION check_password(text) RESET search_path;
这个语句部分兼容 SQL 标准中的 ALTER FUNCTION 语句。该标准允许修改一个函数的更多属性,但是不提供重命名一个函数、标记一个函数为安全性定义者、为一个函数附加配置参数值或者更改一个函数的拥有者、模式或者稳定性等功能。 该标准还需要 RESTRICT 关键字, 它在 YMatrix 数据库中是可选的。