Informix SQL - 这个简单的存储过程& |有什么问题触发语法?

时间:2011-09-07 03:14:12

标签: sql stored-procedures triggers syntax-error informix

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 个答案:

答案 0 :(得分:2)

这最终对我有用

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));