MySQL 存储过程
MySQL 字符集 

MySQL 触发器

在MySQL中,触发器(Triggers)是与表相关联的一种特殊类型的存储过程,它们在插入、更新或删除表中的数据时自动执行。触发器可以用于实现在数据库级别上的数据完整性约束、审计跟踪、日志记录等功能。以下是关于 MySQL 触发器的一些重要信息和示例:


创建触发器

在MySQL中创建触发器的语法如下:

CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name FOR EACH ROW
BEGIN
    -- 触发器执行的SQL语句和逻辑
END;
  • trigger_name:触发器的名称。

  • {BEFORE | AFTER}:指定触发器是在操作之前还是之后执行。

  • {INSERT | UPDATE | DELETE}:指定触发器是在插入、更新还是删除操作时触发。

  • table_name:触发器所关联的表名。

  • FOR EACH ROW:指定触发器的执行频率,每行触发一次。


使用举例

创建一个在 INSERT 操作之后自动触发的触发器

CREATE TRIGGER InsertTrigger
AFTER INSERT ON students
FOR EACH ROW
BEGIN
    -- 假设我们要记录每次插入操作的详细信息到另一个日志表
    INSERT INTO students_activity_log (student_id, activity_type, activity_time)
    VALUES (NEW.student_id, 'INSERT', NOW());
END


在这个例子中,每当向 teachers 表插入新记录时,InsertTrigger触发器会在操作之后执行,将插入操作的详细信息记录到 students_activity_log 表中。