关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
流计算引擎
灾难恢复
系统配置参数
索引
扩展
SQL 参考
常见问题(FAQ)
更改程序的定义。
ALTER PROCEDURE <name> [ ( [ [<argmode>] [<argname>] <argtype> [, ...] ] ) ]
<action> [, ... ] [RESTRICT]
ALTER PROCEDURE <name> [ ( [ [<argmode>] [<argname>] <argtype> [, ...] ] ) ]
RENAME TO <new_name>
ALTER PROCEDURE <name> [ ( [ [<argmode>] [<argname>] <argtype> [, ...] ] ) ]
OWNER TO { <new_owner> | CURRENT_USER | SESSION_USER }
ALTER PROCEDURE <name> [ ( [ [<argmode>] [<argname>] <argtype> [, ...] ] ) ]
SET SCHEMA <new_schema>
ALTER PROCEDURE <name> [ ( [ [<argmode>] [<argname>] <argtype> [, ...] ] ) ]
DEPENDS ON EXTENSION <extension_name>
where <action> is one of:
{ [EXTERNAL] SECURITY INVOKER | [EXTERNAL] SECURITY DEFINER }
SET <configuration_parameter> { TO | = } { <value> | DEFAULT }
SET <configuration_parameter> FROM CURRENT
RESET <configuration_parameter>
RESET ALL
ALTER PROCEDURE 用于修改存储过程的定义。
使用 ALTER PROCEDURE 时,必须拥有该存储过程的所有权。若要更改过程所属模式,还需对新模式拥有 CREATE 权限。若要变更所有者,必须是新所有者角色的直接或间接成员,且该角色需对过程所属模式拥有 CREATE 权限。(这些限制确保变更所有者操作不会产生删除并重建过程无法实现的效果。但超级用户仍可任意更改任何过程的所有权。)
YMatrix 对定义为 STABLE 或 VOLATILE 的函数使用存在限制。更多信息请参阅 CREATE FUNCTION。
将带有两个 integer 类型参数的存储过程 insert_data 重命名为 insert_record:
ALTER PROCEDURE insert_data(integer, integer) RENAME TO insert_record;
将两个 integer 参数的存储过程 insert_data 所有者更改为 joe:
ALTER PROCEDURE insert_data(integer, integer) OWNER TO joe;
将两个 integer 参数的存储过程 insert_data 所属模式更改为 accounting:
ALTER PROCEDURE insert_data(integer, integer) SET SCHEMA accounting;
将存储过程 insert_data(integer, integer) 标记为依赖扩展 myext:
ALTER PROCEDURE insert_data(integer, integer) DEPENDS ON EXTENSION myext;
调整为某个过程自动设置的搜索路径:
ALTER PROCEDURE check_password(text) SET search_path = admin, pg_temp;
禁用对过程的 search_path 自动设置:
ALTER PROCEDURE check_password(text) RESET search_path;
该程序现在将使用其调用者所使用的任何搜索路径来执行。
此语句与 SQL 标准中的 ALTER PROCEDURE 语句部分兼容。标准允许修改存储过程的更多属性,但不提供重命名存储过程、将存储过程设置为安全定义者、将配置参数值附加到存储过程,或更改存储过程的所有者、模式或易失性的功能。标准还要求使用 RESTRICT 关键字,而在 YMatrix 数据库中该关键字是可选的。