ATUALIZE uma linha inteira em PL / pgSQL
Eu tenho a função 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;
Eu gostaria de saber se é possível fazer a atualização diretamentemy_row
registro.
A única maneira que encontrei para fazer isso agora é:
UPDATE my_table SET date=now() WHERE id='1';
Note que esta é apenas uma função de exemplo, a verdadeira é muito mais complexa do que isso.
Estou usando o PostgreSQL 9.2.
ATUALIZAR:
Desculpe pela confusão, o que eu queria dizer é:
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;
Ou seja Use my_row
para persistir informações na tabela subjacente. Eu tenho muitos parâmetros para atualizar.