使用 SPL

在之前触发列中的 EXECUTE PROCEDURE 语句调用以下示例所示的 SPL 例程。在更新 items 表中的 quantity 时,该过程使用 SPL 计算需要对 total_price 列作出的更改。该过程接收 quantity 的旧值和新值以及 total_price 的旧值。它用旧的总价除以旧的数值来得出单价。然后用新的数量乘以单价来得出新的总价。
CREATE PROCEDURE calc_totpr(old_qty SMALLINT, new_qty SMALLINT,
          total MONEY(8)) RETURNING MONEY(8);
          DEFINE u_price LIKE items.total_price;
          DEFINE n_total LIKE items.total_price;
          LET u_price = total / old_qty;
          LET n_total = new_qty * u_price;
          RETURN n_total;
          END PROCEDURE;

在本示例中,SPL 允许触发器派生不能直接从触发表获得的数据。