我有一个需求,我需要得到更新语句的即时结果。我发现我可以通过使用SQL data-change-statement modifiers来实现这一点。但是,在应用了所有关联的触发器之后,我无法得到最终结果。例如,假设我有以下查询:
SELECT empno, salary FROM FINAL TABLE
(UPDATE employee SET salary = salary * 1.10 WHERE job = 'CLERK')
让我们假设我有一个触发器,它执行以下操作:
CREATE TRIGGER EXTRA_PAY_RISE AFTER UPDATE ON employee
REFERENCING OLD AS oldrow
NEW AS newrow
FOR EACH ROW MODE DB2SQL
WHEN (newrow.dept = 'sales')
UPDATE employee SET salary = salary * 1.01 WHERE name = newrow.name;
如何从第一个包含所有关联触发器应用的更新的select语句中获得结果(如果可能的话)?
1条答案
按热度按时间k10s72fa1#
使用
BEFORE UPDATE
触发器和NEW TABLE
(在任何情况下)或FINAL TABLE
(如果您没有AFTER UPDATE
触发器)。如果不能使用
BEFORE
触发器来实现更新逻辑,那么就不能使用data-change-statement来实现目标。