当您使用 UPDATE 语句激活多个触发器时,触发器可能覆盖较早触发器所做的更改。如果您不希望触发操作相互作用,则可以将该 UPDATE 语句分为多个 UPDATE
语句,每个语句更新单个列。
另一个办法是,您可以为需要触发操作的所有列创建单个更新触发器。然后,在触发操作内,您可以测试正被更新的列并以希望的顺序应用操作。但是,这种方法与让数据库服务器应用单个触发器的操作不同,并且有以下缺点:
- 如果触发 UPDATE 语句将列设置为当前值,则您无法检测 UPDATE ,因此触发操作被跳过。您可能希望执行触发操作,即使列值尚未被更改。
- 如果触发器具有 BEFORE 操作,则它应用于所有列,因为您尚无法检测某列是否被更改。