ALTER FUNCTION
是用于修改现有函数的 DDL 命令。
ALTER FUNCTION
添加于 PostgreSQL 7.4。
用法
ALTER FUNCTION
用于更新函数的元数据。
要更改函数本身的定义,请使用 CREATE OR REPLACE FUNCTION
。
更改历史记录
- PostgreSQL 14
ALTER FUNCTION ... OWNER TO CURRENT_ROLE
语法添加 (提交 45b98057)
- PostgreSQL 12
- 选项
SUPPORT
添加 (提交 1fb57af9)
- 选项
- PostgreSQL 9.6
- PostgreSQL 8.3
- PostgreSQL 8.1
- PostgreSQL 8.0
ALTER FUNCTION ... OWNER TO ...
语法添加 (提交 0adfa2c3)
- PostgreSQL 7.4
- 添加 (提交 b256f242)
示例
使用 ALTER FUNCTION
重命名函数
postgres=# ALTER FUNCTION foo() RENAME TO bar; ALTER FUNCTION
如果函数不带任何参数并且函数名称唯一,则可以省略括号。
postgres=# ALTER FUNCTION bar RENAME TO foo; ALTER FUNCTION
但是,如果有多个具有相同名称(但接受不同参数)的函数,则必须提供函数的调用签名。
postgres=# ALTER FUNCTION bar RENAME TO foo; ERROR: function name "bar" is not unique postgres=# ALTER FUNCTION bar(int) RENAME TO foo; ALTER FUNCTION
如果在同一模式中已存在另一个具有相同签名的函数且具有新名称,则不能重命名函数。
postgres=# ALTER FUNCTION bar(int) RENAME TO foo; ERROR: function foo(integer) already exists in schema "public"
参考文献
- PostgreSQL 文档: ALTER FUNCTION