PostgreSQL 存储过程
什么是 PostgreSQL 存储过程?
PostgreSQL 存储过程是一组预编译的 SQL 语句,存储在数据库中,可以通过调用来执行。它们通常用于封装复杂的业务逻辑,简化数据库操作,并提高代码的可重用性和性能。存储过程可以接受输入参数,返回结果,并且可以在事务中执行。
备注
存储过程与函数类似,但存储过程不返回值(除非使用 OUT
参数),而函数必须返回值。
存储过程的基本语法
在 PostgreSQL 中,存储过程使用 CREATE PROCEDURE
语句定义。以下是一个简单的存储过程示例:
CREATE OR REPLACE PROCEDURE add_employee(
emp_name VARCHAR,
emp_salary NUMERIC
)
LANGUAGE plpgsql
AS $$
BEGIN
INSERT INTO employees (name, salary) VALUES (emp_name, emp_salary);
END;
$$;
解释:
CREATE OR REPLACE PROCEDURE
:创建或替换存储过程。add_employee
:存储过程的名称。emp_name
和emp_salary
:输入参数。LANGUAGE plpgsql
:指定存储过程使用的语言为 PL/pgSQL。AS $$ ... $$
:存储过程的主体,包含要执行的 SQL 语句。
调用存储过程
要调用存储过程,可以使用 CALL
语句:
CALL add_employee('John Doe', 50000);