SQL 学习笔记:触发器 TRIGGER(触发器)

一、触发器 语法

-- Oracle
CREATE TRIGGER trg BEFORE INSERT ON t
FOR EACH ROW BEGIN :NEW.col := ...; END;
-- MySQL
CREATE TRIGGER trg BEFORE INSERT ON t
FOR EACH ROW SET NEW.col = ...;

二、参数说明

项目说明
BEFORE/AFTER触发时机:操作前/后
INSERT/UPDATE/DELETE触发事件,可组合
FOR EACH ROW行级触发器,每行触发一次
NEW/OLD:NEW(NEW.) 新值,:OLD(OLD.) 旧值(Oracle 用冒号)

三、注意事项

  • Oracle 行触发器用 :NEW / :OLD(带冒号);MySQL 用 NEW / OLD(无冒号)
  • Oracle 可一个触发器挂多个事件(INSERT OR UPDATE OR DELETE)
  • 触发器常用于审计、自动填充时间/ID,勿滥用以免难以调试

四、经典案例

案例1:自动填充时间(MySQL)

自动填充时间(MySQL)

案例2:Oracle 审计触发器

Oracle 审计触发器

案例3:阻止非法删除

阻止非法删除

五、小结

触发器 TRIGGER是数据库操作中的基础而关键的用法,建议结合文中的示例表在 Oracle 与 MySQL 中分别动手验证,注意两者在自增、分页、正则等处的语法差异,做到融会贯通。

💬 0 评论

评论(0)

登录后发表评论。