本篇文章给大家带来了关于mysql的相关知识,其中主要整理了触发器的相关问题,包括了为什么需要触发器、触发器的概述、触发器的创建等等内容,下面一起来看一下,希望对大家有帮助。
推荐学习:mysql视频教程
有一些表是互相关联的,比如说商品表和库存表,我们对商品表的数据进行操作,那么对应的库存表还得发生变化,这样才可以保证数据的完整。如果我们是自己手动维护的话,比较麻烦。
这个时候我们可以使用触发器,创建一个触发器,让商品信息数据的插入操作自动触发库存数据的插入操作等,这样我们就不需要担心因为忘记添加库存数据而导致数据丢失了。
触发器是作用在表上的,比如说我们希望表A新增一条记录的时候就触发 触发器的执行,而且还要选择触发器是在insert语句执行之前执行触发器还是之后。
CREATE TRIGGER 触发器名称 {BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名 FOR EACH ROW 触发器执行的语句块;
说明:
表名
:表示触发器监控的对象。
BEFORE|AFTER
:表示触发的时间。BEFORE 表示在事件之前触发;AFTER 表示在事件之后触发。
INSERT|UPDATE|DELETE
:表示触发的事件。
触发器执行的语句块
:可以是单条SQL语句,也可以是由BEGIN…END结构组成的复合语句块。
先准备表
CREATE TABLE test_trigger (id INT PRIMARY KEY AUTO_INCREMENT,t_note VARCHAR(30));CREATE TABLE test_trigger_log (id INT PRIMARY KEY AUTO_INCREMENT,t_log VARCHAR(30));
要求:创建触发器:创建名称为before_insert的触发器,向test_trigger数据表插入数据之前,向test_trigger_log数据表中插入before_insert的日志信息。
show triggers\G 注意,在SQLyog中,不能加上\G
show create trigger 触发器名
SELECT * FROM information_schema.TRIGGERS;
触发器也是数据库对象,触发器也是用drop语句来删除
drop trigger if exists 触发器名;
推荐学习:mysql视频教程
以上是完全掌握MySQL触发器的详细内容。更多信息请关注PHP中文网其他相关文章!