ALTER AGGREGATE
更改一个聚合函数的定义
英文手册覆盖始于 PostgreSQL 6.4. 来源历史与运行验证各自保留独立版本边界。
当前阅读 PG 18·选择有来源记录的版本
- anchor
- SQL-ALTERAGGREGATE
- file
- sql-alteraggregate.html
- lang
- en
- name
- ALTER AGGREGATE
- purpose
- change the definition of an aggregate function
- purpose zh
- 未知
- sections same as
- 未知
- slug
- 18
语法
ALTER AGGREGATE name ( aggregate_signature ) RENAME TO new_name
ALTER AGGREGATE name ( aggregate_signature )
OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER AGGREGATE name ( aggregate_signature ) SET SCHEMA new_schema
where aggregate_signature is:
* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]语法图
从左向右阅读;分支表示选择,旁路表示可选,循环表示重复。点击带下划线的参数可打开对应规则。
ALTER AGGREGATE · 语法 2
ALTER AGGREGATE · 语法 3
aggregate_signature
版本定义 PG 18
ALTER AGGREGATE name ( aggregate_signature ) RENAME TO new_name
ALTER AGGREGATE name ( aggregate_signature )
OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER AGGREGATE name ( aggregate_signature ) SET SCHEMA new_schema
其中 aggregate_signature 是:
* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]描述
ALTER AGGREGATE更改聚合函数的定义。
要使用ALTER AGGREGATE,你必须拥有该聚合函数。要更改聚合函数的模式,你还必须在新模式上具有 CREATE权限。要更改拥有者,你必须能够对新的拥有角色执行 SET ROLE,并且该角色必须在该聚合函数所在模式上具有 CREATE权限。(这些限制确保更改拥有者不会做出任何你无法通过删除并重新创建该聚合函数来完成的事情。不过,超级用户无论如何都可以更改任何聚合函数的所有权。)
参数
name现有聚合函数的名称(可以用模式限定)。
argmode参数的模式:
IN或VARIADIC。如果省略,默认为IN。argname参数的名称。注意,
ALTER AGGREGATE实际上并不关心参数名,因为确定聚合函数的标识只需要参数的数据类型。argtype聚合函数作用于其上的输入数据类型。要引用零参数聚合函数,请在参数说明列表的位置写上
*。要引用有序集聚合函数,请在直接参数说明和聚合参数说明之间写上ORDER BY。new_name聚合函数的新名称。
new_owner聚合函数的新拥有者。
new_schema聚合函数的新模式。
注解
引用有序集聚合的推荐语法,是像CREATE AGGREGATE 中那样,在直接参数说明和聚合参数说明之间写上ORDER BY。不过,省略ORDER BY,直接把两部分参数说明合并为一个列表也同样可行。在这种简写形式中,如果直接参数列表和聚合参数列表中都使用了VARIADIC "any",则只需写一次VARIADIC "any"。
示例
要把用于类型integer的聚合函数 myavg重命名为my_average:
ALTER AGGREGATE myavg(integer) RENAME TO my_average;
要把用于类型integer的聚合函数 myavg的拥有者改为joe:
ALTER AGGREGATE myavg(integer) OWNER TO joe;
把直接参数类型为float8、聚合参数类型为integer 的有序集聚合mypercentile移动到模式myschema中:
ALTER AGGREGATE mypercentile(float8 ORDER BY integer) SET SCHEMA myschema;
这也同样可行:
ALTER AGGREGATE mypercentile(float8, integer) SET SCHEMA myschema;
兼容性
在 SQL 标准中没有ALTER AGGREGATE语句。
另见
CREATE AGGREGATE, DROP AGGREGATE比较版本
完整来源事实
synopsis html
ALTER AGGREGATE <em class="replaceable"><code>name</code></em> ( <em class="replaceable"><code>aggregate_signature</code></em> ) RENAME TO <em class="replaceable"><code>new_name</code></em>
ALTER AGGREGATE <em class="replaceable"><code>name</code></em> ( <em class="replaceable"><code>aggregate_signature</code></em> )
OWNER TO { <em class="replaceable"><code>new_owner</code></em> | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER AGGREGATE <em class="replaceable"><code>name</code></em> ( <em class="replaceable"><code>aggregate_signature</code></em> ) SET SCHEMA <em class="replaceable"><code>new_schema</code></em>
<span class="phrase">where <em class="replaceable"><code>aggregate_signature</code></em> is:</span>
* |
[ <em class="replaceable"><code>argmode</code></em> ] [ <em class="replaceable"><code>argname</code></em> ] <em class="replaceable"><code>argtype</code></em> [ , ... ] |
[ [ <em class="replaceable"><code>argmode</code></em> ] [ <em class="replaceable"><code>argname</code></em> ] <em class="replaceable"><code>argtype</code></em> [ , ... ] ] ORDER BY [ <em class="replaceable"><code>argmode</code></em> ] [ <em class="replaceable"><code>argname</code></em> ] <em class="replaceable"><code>argtype</code></em> [ , ... ]synopsis text
ALTER AGGREGATE name ( aggregate_signature ) RENAME TO new_name
ALTER AGGREGATE name ( aggregate_signature )
OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER AGGREGATE name ( aggregate_signature ) SET SCHEMA new_schema
where aggregate_signature is:
* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]来源引用
定义来源
center · PostgreSQL 18 · a709ab85
正文语言: zh-Hans · 1b5ca64c