小编Jer*_*oni的帖子

在PL / pgSQL中更新整行

我有plpgsql函数:

CREATE OR REPLACE FUNCTION test() RETURNS VOID AS
$$
DECLARE
    my_row my_table%ROWTYPE;
BEGIN
    SELECT * INTO my_row FROM my_table WHERE id='1';
    my_row.date := now();
END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以直接更新my_row记录。

我现在发现要做的唯一方法是:

UPDATE my_table SET date=now() WHERE id='1';
Run Code Online (Sandbox Code Playgroud)

请注意,这只是一个示例函数,实际的函数要比这复杂得多。

我正在使用PostgreSQL 9.2。

更新:

对不起,我想说的是:

SELECT * INTO my_row FROM my_table INTO my_row WHERE id='1';
make_lots_of_complicated_modifications_to(my_row, other_complex_parameters);
UPDATE my_row;
Run Code Online (Sandbox Code Playgroud)

即使用my_ row将信息保留在基础表中。我有很多参数需要更新。

postgresql plpgsql sql-update

4
推荐指数
1
解决办法
9127
查看次数

标签 统计

plpgsql ×1

postgresql ×1

sql-update ×1