pg数据库开发-赋值
PostgreSQL中变量赋值主要通过PL/pgSQL实现,支持静态和动态赋值。基础语法使用:=或=运算符,可通过DECLARE声明变量并初始化。动态SQL使用EXECUTE...INTO赋值,查询结果通过SELECT INTO获取。还支持记录类型、数组赋值及默认值设置,未赋值变量默认为NULL。语法灵活,能满足不同场景的数据处理需求。
·
变量赋值基础语法
在PostgreSQL中,变量赋值通常发生在PL/pgSQL函数或存储过程中。使用 := 或 = 运算符进行赋值。
DECLARE
var_name data_type := initial_value; -- 声明时赋值
BEGIN
var_name := new_value; -- 执行时赋值
END;
动态SQL赋值
通过 EXECUTE 执行动态SQL语句并赋值给变量:
DECLARE
result_val INTEGER;
BEGIN
EXECUTE 'SELECT COUNT(*) FROM table_name' INTO result_val;
END;
查询结果赋值
使用 SELECT INTO 将查询结果直接赋给变量:
DECLARE
user_count INTEGER;
BEGIN
SELECT COUNT(*) INTO user_count FROM users;
END;
记录类型赋值
对复合类型(如行记录)赋值时需指定字段:
DECLARE
emp_record employees%ROWTYPE;
BEGIN
SELECT * INTO emp_record FROM employees WHERE id = 1;
-- 访问字段:emp_record.salary
END;
数组赋值
数组类型可通过以下方式赋值:
DECLARE
numbers INTEGER[] := ARRAY[1, 2, 3];
text_arr TEXT[] := '{"a", "b"}'::TEXT[];
BEGIN
numbers[1] := 10; -- 修改数组元素
END;
默认值与NULL处理
变量声明时可设置默认值,未赋值时为NULL:
DECLARE
counter INTEGER DEFAULT 0;
nullable_val TEXT;
BEGIN
IF nullable_val IS NULL THEN
nullable_val := 'default';
END IF;
END;
更多推荐
所有评论(0)