SQL 触发器是一种强大的数据库对象,可以在特定事件发生时自动执行预定义的操作。触发器的执行由事件驱动,而不是程序或用户直接调用。

触发器的核心特征:

  • 执行时机: 触发器可以设置在触发事件之前 (BEFORE) 或之后 (AFTER) 执行,赋予开发者对数据操作流程的精细控制能力。
  • 触发条件: WHEN 语句用于定义触发器激活所需的条件。仅当 WHEN 条件满足时,触发器才会执行预定义的操作。
  • 操作粒度: 触发器提供了两种操作粒度:
    • 行级触发器 (FOR EACH ROW): 针对触发事件影响的每一行数据执行一次操作,适用于需要对每行数据进行精细处理的场景。
    • 语句级触发器: 针对整个触发事件执行一次操作,效率较高,适用于对整体数据进行汇总或处理的情况。
  • 语法差异: 尽管 SQL99 标准对触发器语法进行了规定,但不同数据库厂商在实现时存在语法差异。