WHEN 条件使触发操作依赖于测试的结果。当您在触发操作中包含 WHEN 条件时,仅当条件所得的值为 true 时,触发操作列表中的语句才执行。如果 WHEN 条件求值为 false 或 unknown ,则触发操作列表中的语句不执行。
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.order_num, pre.unit_price, post.unit_price, CURRENT));
在 WHEN 条件内执行的 SPL 例程与在数据库操纵语句中调用的 UDR 具有相同的限制。也就是说,SPL 例程不能包含某些 SQL 语句。有关语句受限制的信息,请参阅在数据操纵语句中 SPL 例程的限制。