当 UPDATE 或 MERGE 语句激活多个触发器时,触发操作合并。假设
taba 具有列
a 、
b 、
c 和
d,如该示例所示:
CREATE TABLE taba (a INT, b INT, c INT, d INT);
接下来。假设您在列
a 和
c 上定义
trig1,在列
b 和
d 上定义
trig2
。如果两个触发器都指定BEFORE 、FOR EACH ROW 和 AFTER 操作,则按以下顺序执行触发器操作:
- 触发器的 BEFORE 操作列表(a 、 c)
- 触发器的 BEFORE 操作列表(b 、d)
- 触发器的 FOR EACH ROW 操作列表(a 、c)
- 触发器的 FOR EACH ROW 操作列表(b、 d)
- 触发器的 AFTER 操作列表(a 、 c)
- 触发器的 AFTER 操作列表(b 、 d)
数据库服务器将由同一个触发语句激活的所有触发器视为单个触发器。且触发操作是合并操作列表。控制触发器操作的所有规则适用于作为单个列表的合并列表,且两个原始触发器之间没有区别。