mysql触发器怎么创建

avatar
作者
筋斗云
阅读量:9

创建MySQL触发器需要使用CREATE TRIGGER语句,语法如下:,,“sql,CREATE TRIGGER trigger_name,trigger_time trigger_event ON table_name FOR EACH ROW trigger_body;,`,,trigger_name是触发器名称,trigger_time是触发时机(BEFORE或AFTER),trigger_event是触发事件(INSERT、UPDATE或DELETE),table_name是触发器所在表名,trigger_body`是触发器执行的SQL语句。

MySQL触发器是一种存储在数据库中的程序,它会在特定的事件(如插入、更新或删除数据)发生时自动执行,触发器可以用于实现数据的完整性约束、审计和业务逻辑等。

创建触发器

1、使用CREATE TRIGGER语句创建触发器:

mysql触发器怎么创建

CREATE TRIGGER trigger_name
trigger_time trigger_event
ON table_name FOR EACH ROW
trigger_body;

参数说明

trigger_name:触发器名称,自定义。

trigger_time:触发时机,可选值有BEFORE(在触发事件发生之前执行)和AFTER(在触发事件发生之后执行)。

trigger_event:触发事件,可选值有INSERT(插入数据)、UPDATE(更新数据)和DELETE(删除数据)。

mysql触发器怎么创建

table_name:触发器所在的表名。

trigger_body:触发器要执行的操作,可以是SQL语句、PL/SQL语句等。

2、示例:创建一个在向students表插入数据之前检查学号是否重复的触发器。

DELIMITER //
CREATE TRIGGER check_student_id_before_insert
BEFORE INSERT ON students
FOR EACH ROW
BEGIN
  DECLARE duplicate_count INT;
  SELECT COUNT(*) INTO duplicate_count FROM students WHERE student_id = NEW.student_id;
  IF duplicate_count > 0 THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '学号重复';
  END IF;
END;
//
DELIMITER ;

查看触发器

使用SHOW TRIGGERS语句查看当前数据库中的所有触发器:

mysql触发器怎么创建

SHOW TRIGGERS;

修改触发器

使用ALTER TRIGGER语句修改触发器:

ALTER TRIGGER trigger_name
trigger_time trigger_event
ON table_name FOR EACH ROW
trigger_body;

删除触发器

使用DROP TRIGGER语句删除触发器:

DROP TRIGGER trigger_name;

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!