WHEN 条件

WHEN 条件使触发操作依赖于测试的结果。当您在触发操作中包含 WHEN 条件时,仅当条件所得的值为 true 时,触发操作列表中的语句才执行。如果 WHEN 条件求值为 falseunknown ,则触发操作列表中的语句不执行。

如果触发操作在 FOR EACH ROW 部分中,则其条件对每一行求值,例如,仅当 WHEN 子句为 true 时以下触发器中的触发操作才执行:
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 例程的限制