变量赋值基础语法

在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;
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐