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