以下是一些 PL/pgSQL 的基本特性和语法示例:
1. PL/pgSQL 函数:
-- 创建一个简单的 PL/pgSQL 函数
CREATE OR REPLACE FUNCTION add_numbers(a INT, b INT) RETURNS INT AS $$
DECLARE
result INT;
BEGIN
result := a + b;
RETURN result;
END;
$$ LANGUAGE plpgsql;
-- 调用函数
SELECT add_numbers(3, 5); -- 返回 8
2. 条件语句:
-- 使用 IF 条件语句
CREATE OR REPLACE FUNCTION check_even_odd(number INT) RETURNS TEXT AS $$
DECLARE
result TEXT;
BEGIN
IF number % 2 = 0 THEN
result := 'Even';
ELSE
result := 'Odd';
END IF;
RETURN result;
END;
$$ LANGUAGE plpgsql;
-- 调用函数
SELECT check_even_odd(7); -- 返回 'Odd'
3. 循环语句:
-- 使用 FOR 循环语句
CREATE OR REPLACE FUNCTION print_numbers_up_to(n INT) RETURNS VOID AS $$
DECLARE
i INT;
BEGIN
FOR i IN 1..n LOOP
RAISE NOTICE 'Number: %', i;
END LOOP;
END;
$$ LANGUAGE plpgsql;
-- 调用函数
SELECT print_numbers_up_to(5);
4. 异常处理:
-- 使用异常处理
CREATE OR REPLACE FUNCTION divide_numbers(a INT, b INT) RETURNS FLOAT AS $$
DECLARE
result FLOAT;
BEGIN
BEGIN
-- 尝试执行除法
result := a / b;
EXCEPTION
WHEN division_by_zero THEN
RAISE NOTICE 'Error: Division by zero';
result := NULL;
END;
RETURN result;
END;
$$ LANGUAGE plpgsql;
-- 调用函数
SELECT divide_numbers(10, 0); -- 返回 NULL,并产生 NOTICE:'Error: Division by zero'
PL/pgSQL 提供了丰富的语法和功能,允许开发者使用变量、条件、循环、异常处理等来编写更复杂的存储过程和函数。这使得 PL/pgSQL 成为在数据库中实现业务逻辑的强大工具。
转载请注明出处:http://www.zyzy.cn/article/detail/8503/PostgreSQL