使用触发操作 / FOR EACH ROW 触发操作 |
作为表上的触发器的选项,可在 WHEN 子句之前加上触发操作以使该操作依赖于测试结果。WHEN 子句由关键字 WHEN 以及跟随在其后的括在圆括号中的条件语句所组成。在 CREATE TRIGGER 语句中,WHEN 子句跟在关键字 BEFORE 、AFTER 或 OR EACH ROW 之后,触发操作列表之前。
当 WHEN 条件存在时,如果它求值为 true,那么按触发操作的出现顺序执行这些操作。如果 WHEN 条件求值为 false 或 unknown,那么不执行触发操作列表中的操作。如果触发器指定 FOR EACH ROW,那么还将针对每一行对条件进行求值。
CREATE TRIGGER up_price UPDATE OF unit_price ON stock REFERENCING OLD AS pre NEW AS post FOR EACH ROW WHEN(post.unit_price > pre.unit_price * 2) (INSERT INTO warn_tab VALUES(pre.stock_num, pre.manu_code, pre.unit_price, post.unit_price, CURRENT));
有关 WHEN 条件的更多信息,请参阅 GBase 8s SQL 指南:语法中的 CREATE TRIGGER 语句。