Триггер BEFORE UPDATE

Владимир СА
Дата: 23.04.2015 12:00:40
Что-то не выходит каменный цветок...
Прошу совета, помощи...

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, оператор присваивание
******
Непонятно, что неправильно присвоил ?
Владимир СА
Дата: 23.04.2015 12:04:30
Извиняюсь... совсем заработался...
ошибка в
NEW.data_rec = now();

надо
NEW.date_rec = now();


Еще раз извиняюсь...