ОБНОВЛЕНИЕ целой строки в 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;
Я хотел бы знать, возможно ли непосредственное ОБНОВЛЕНИЕmy_row
запись.
Единственный способ, которым я нашел это сейчас, - это:
UPDATE my_table SET date=now() WHERE id='1';
Обратите внимание, что это только примерная функция, реальная намного сложнее, чем эта.
Я использую 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;
То есть Используйте my_row
сохранить информацию в базовой таблице. У меня есть много параметров для обновления.