SQL存储过程中"引用旧"和"引用新"有什么区别?

Che*_*eso 3 sql syntax informix triggers stored-procedures

我不确定这种语法是否是特定于Informix的,但是我在创建触发器时遇到了麻烦,直到找到包含这些行中的一个或两个的语法:

CREATE TRIGGER      accuplacer_trig
UPDATE OF           processed
ON                  accuplacer_rec
REFERENCING OLD AS  proc_pre_upd 
FOR EACH ROW        (EXECUTE PROCEDURE accuplacer_proc(proc_pre_upd.exam_num));
Run Code Online (Sandbox Code Playgroud)

有时它写成 REFERENCING OLD AS alias1, NEW AS alias2

是什么区别REFERENCING OLD ASREFERENCING NEW AS,和他们做什么/是他们需要的,为什么?

Nat*_*C-K 6

"OLD"是更新前行中的数据."NEW"是更新完成后将在行中的数据.如果您希望触发器根据它执行操作,则需要访问此信息; 通常,你确实想要这个,尽管并非总是这样.

本页对Informix上下文中使用触发器的这一方面进行了更长时间的讨论:http: //www.pacs.tju.edu/informix/answers/english/docs/dbdk/infoshelf/sqlt/15.fm3.html