CREATE PROCEDURE
是用于定义新存储过程的DDL命令。
CREATE PROCEDURE
添加于 PostgreSQL 11。
更改历史记录
- PostgreSQL 14
- 在创建SQL函数时支持SQL标准函数体(提交 e717a9a1)
- PostgreSQL 11
- 添加(提交 e4128ee7)
示例
CREATE PROCEDURE
的基本用法示例
postgres=# CREATE PROCEDURE foo() LANGUAGE SQL AS 'SELECT pg_reload_conf()'; CREATE PROCEDURE postgres=# CALL foo(); CALL
无法创建与现有函数具有相同名称和参数的存储过程
postgres=# CREATE PROCEDURE foo(int) LANGUAGE SQL AS 'SELECT 1'; ERROR: function "foo" already exists with same argument types
可以创建名称相同但参数类型不同的函数和存储过程
postgres=# \df List of functions Schema | Name | Result data type | Argument data types | Type --------+------+------------------+---------------------+------ public | foo | | | proc public | foo | integer | integer | func (2 rows)
可以创建和调用空存储过程
postgres=# CREATE PROCEDURE emptyproc() LANGUAGE SQL AS ''; CREATE PROCEDURE postgres=# CALL emptyproc(); CALL
参考
- PostgreSQL 文档: CREATE PROCEDURE