【发布时间】:2011-09-07 03:14:11
【问题描述】:
IBM Informix 动态服务器版本 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
有谁知道我在触发器的语法中做错了什么?是否可以在创建表时定义这种类型的更新,还是我需要通过上述方式来完成它?
感谢您的帮助
【问题讨论】:
-
不是 9.53 - 请尝试:
SELECT DBINFO('version','full') FROM "informix".systables WHERE tabid = 1。 -
IBM Informix 动态服务器版本 11.50.FC6
标签: sql stored-procedures triggers syntax-error informix