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