触发器是由INSERT、UPDATE 和 DELETE等事件来触发某种特定操作。满足触反益的触发条件时,数据库系统就会执行触发器中定义的程序语句。这样做可以保证呆些探作之间的一致性。例如,当学生表中增加了一个学生的信息时,字生的总数就必须回时以变。可以在这里创建一个触发器,每次增加一个学生的记录,就执行一次计算学生总数的操作。这样就可以保证每次增加学生的记录后,学生总数是与记录数是一致的。触发器触发的执行语句可能只有一个,也可能有多个。
创建触发器
//创建只有一个执行语句的触发器
CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件 ON 表名 FOR EACH ROW 执行语句
cteate trigger fept_trig1 before insert on table1 for each row insert into ttt values(now());
//创建有多个执行语句的触发器
DELIMITER &&
CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件 ON 表名 FOR EACH ROW
BEGIN 执行语句列表 END &&
DELIMITER,一般SQL “;”结束,在创建多个语句执行的触发器时,要用到“;”,所以用DELIMETER来切换一下。
查看触发器
SHOW TRIGGERS ;
SELECT * FROM information_schema. triggers ;
触发器的使用
MySQL中,触发器执行的顺序是BEFORE触发器、表操作(INSERT、UPDATE 和DELETE)、AFTER触发器
触发器中不能包含START TRANSACTION, COMMIT,ROLLBACK,CALL等。
删除触发器
DROP TRIGGER 触发器名 ;