Informix SQL - Что не так с этой простой хранимой процедурой & |Синтаксис триггера? - PullRequest
1 голос
/ 07 сентября 2011

IBM Informix Dynamic Server версии 11.50.FC6

Я пытаюсь выполнить простую хранимую процедуру из триггера обновления.Вместе они используются для обновления поля с текущей отметкой времени при обновлении другого поля в той же строке.

Таблица sp_test:

id          (serial int, unique, not null, primary key)    
stat        (char(1), not null, default="A")
add_date    (date, not null, default today)
upd_date    (date, null)

Код хранимой процедуры:

create procedure upd_row_date_proc (cid int)
update sproc_trig_rec set upd_date = current where id = cid;
end procedure;

Это выполняется нормально и создает подпрограмму, но триггер, который я пытаюсь реализовать в обновлениях, не работает.

Код триггера:

create trigger upd_row_date_trig
update of stat on sproc_trig_rec
after (execute procedure upd_row_date_proc(id));

Я пробовал несколько вариантов синтаксиса, но не могу заставить его работать.

Обычно я получаю ошибку( символ 3-й строки.Вот код ошибки:

  201: A syntax error has occurred.
Error in line 3
Near character position 0

Кто-нибудь знает, что я делаю неправильно в синтаксисе триггера?Может ли этот тип обновления быть определен при создании таблицы, или мне нужно выполнить его, выполнив описанные выше действия?

Спасибо за любую помощь

1 Ответ

2 голосов
/ 07 сентября 2011

Это, наконец, сработало для меня

create trigger ken_trig
update of stat on sproc_trig_rec
referencing old as ken_pre_upd
for each row (execute procedure ken_proc(ken_pre_upd.id));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...