MySQL数据库操作补坑(六)触发器

创建触发器

1)、只有一个执行语句的触发器

语法:

CREATE TRIGGER 触发器名 BEFORE | AFTER 触发器事件
		ON 表名 FOR EACH ROW 执行语句
  • BEFORE:指在触发事件之前执行触发语句

  • AFTER:在触发事件之后执行触发语句

  • 触发事件:只触发的条件,其中包括INSERT、UPDATE、DELETE;

  • FOR EACH ROW:表示任何一条记录上的操作满足触发事件都会触发该触发器

  • 执行语句:指触发器触发后执行的程序

2)、创建有多个执行语句的触发器

语法:

CREATE TRIGGER 触发器名 BEFORE | AFTER 触发器事件
		ON 表名 FOR EACH ROW
		BEGIN
			执行语句列表
		END

不同的执行语句间用分号隔开

一般情况下,MySQL 默认是以;作为结束执行语句。在创建触发器时过程中需要用到;。为了解决这个问题,可以用DELIMITER语句。如DELIMITER && ;来将结束符号变成;

DELIMITER &&
CREATE TRIGGER 触发器名 BEFORE | AFTER 触发器事件
		ON 表名 FOR EACH ROW
		BEGIN
			执行语句列表
		END
DELIMITER ;

MySQL中,一个表在相同触发时间的相同触发事件,只能创建一个触发器。

查看触发器

1)、SHOW TRIGGERS 查看触发器信息

语法:SHOW TRIGGERS;

该语句只能查询所有触发器信息。

2)、在tiggers表中查看触发器信息

所有的触发器的定义都存在information_schema数据库下的 triggers 表中。

SELECT * FROM information_schema.tiggers WHERE TIGGER_NAME='触发器名';

触发器的使用

在激活触发器时,对触发器中的执行语句存在一些限制:

不能包含 START TRANSACTION、COMMIT、或ROLLBACK等关键词,也不能包含CALL语句。

在触发器的执行过程中,任何步骤出错都会阻止程序向下执行。但是对于普通表来说,已经更新过的记录是不能回滚的。更新后的数据将继续保持在表中。

删除触发器

语法:DROP TRIGGER 触发器名;

触发器需要及时删除

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页