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
