Что-то не выходит каменный цветок...
Прошу совета, помощи...
PostgreSQL 9.4.1
имеется таблица:
CREATE TABLE zags_data1.sp_operation_mode
(
id integer NOT NULL, -- Идентификатор
name character varying(50) NOT NULL, -- Наименование
ord integer, -- Порядок
flag_output integer NOT NULL DEFAULT 1, -- Флаг вывода для выбора
date_begin date NOT NULL DEFAULT to_date('01011900'::text, 'ddmmyyyy'::text), -- Дата начала действия элемента
date_end date NOT NULL DEFAULT to_date('01012100'::text, 'ddmmyyyy'::text), -- Дата окончания действия элемента
id_user uuid NOT NULL, -- Пользователь, изменивший/создавший запись
date_rec timestamp with time zone NOT NULL DEFAULT now(), -- Дата изменения/создания записи
CONSTRAINT sp_operation_mode_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE zags_data1.sp_operation_mode
OWNER TO postgres;
CREATE UNIQUE INDEX idx_sp_operation_mode01
ON zags_data1.sp_operation_mode
USING btree
(id);
CREATE TRIGGER tr_sp_operation_mode_update
BEFORE UPDATE
ON zags_data1.sp_operation_mode
FOR EACH ROW
EXECUTE PROCEDURE zags_data1.f_tr_sp_operation_mode_update();
Имеется триггерная функция:
CREATE OR REPLACE FUNCTION zags_data1.f_tr_sp_operation_mode_update()
RETURNS trigger AS
$BODY$BEGIN
NEW.data_rec = now();
RETURN NEW;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION zags_data1.f_tr_sp_operation_mode_update()
OWNER TO postgres;
Загружены данные в таблицу... см. прикрепленный рисунок...
Цель проверить работу триггера на UPDATE поля data_rec
UPDATE zags_data1.sp_operation_mode SET name = 'регистрация_000' WHERE id = 4;
ОШИБКА: в записи "new" нет поля "data_rec"
CONTEXT: функция PL/pgSQL zags_data1.f_tr_sp_operation_mode_update(), строка 2, оператор присваивание
********** Ошибка **********
ОШИБКА: в записи "new" нет поля "data_rec"
SQL-состояние: 42703
Контекст: функция PL/pgSQL zags_data1.f_tr_sp_operation_mode_update(), строка 2, оператор присваивание
******
Непонятно, что неправильно присвоил ?