企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# ALTER AGGREGATE ## Name ALTER AGGREGATE -- 修改一个聚集函数的定义 ## Synopsis ``` ALTER AGGREGATE _name_ ( _argtype_ [ , ... ] ) RENAME TO _new_name_ ALTER AGGREGATE _name_ ( _argtype_ [ , ... ] ) OWNER TO _new_owner_ ALTER AGGREGATE _name_ ( _argtype_ [ , ... ] ) SET SCHEMA _new_schema_ ``` ## 描述 `ALTER AGGREGATE` 改变一个聚集函数的定义。 要使用 `ALTER AGGREGATE` ,你必须是该聚集函数的所有者。 要改变一个聚集函数的模式,你必须在新模式上有 `CREATE` 权限。 要改变所有者,你必须是新所有角色的一个直接或间接成员,并且该角色必须在聚集函数的模式上有 `CREATE` 权限。 (这些限制强制了修改该所有者不会做任何通过删除和重建聚集函数不能做的事情。不过,超级用户可以用任何方法任意更改聚集函数的所属关系。) ## 参数 `_name_` 现有的聚集函数的名称(可以有模式修饰)。 `_argtype_` 聚集函数操作的输入数据类型。要引用一个零参数聚集函数,可以写入`*`代替输入数据类型列表。 `_new_name_` 聚集函数的新名字。 `_new_owner_` 聚集函数的新所有者。 `_new_schema_` 聚集函数的新模式。 ## 例子 把一个接受`integer` 类型参数的聚集函数`myavg`重命名为 `my_average` : ``` ALTER AGGREGATE myavg(integer) RENAME TO my_average; ``` 把一个接受`integer` 类型参数的聚集函数`myavg`的所有者改为`joe` : ``` ALTER AGGREGATE myavg(integer) OWNER TO joe; ``` 把一个接受`integer` 类型参数的聚集函数myavg移动到模式myschema里: ``` ALTER AGGREGATE myavg(integer) SET SCHEMA myschema; ``` ## 兼容性 SQL标准里没有`ALTER AGGREGATE`语句。 ## 参见 [CREATE AGGREGATE](#calibre_link-537), [DROP AGGREGATE](#calibre_link-534)