MySQL数据库提升篇-----触发器

来源:转载


day06 MySQL数据库提升篇-----触发器

一、触发器概述:

触发器是什么?能有什么作用?能给我们带来什么样的操作数据库的方法这都在这里学一一的告诉大家。触发器原理类似于扳机的原理,当你一点击触发的时候就会产生相应的后续动作。下面就具体的创建和使用一下触发器。

二、触发器(trigger):

1、创建触发器

createtrigger触发器名before|after触发事件
on表名foreachrow
begin
执行语句;
end;
译:
before|after:表示触发器执行的时间,前者是表示触发前执行,
后者是表示触发时间之后执行
触发事件:触发事件代表“insert”、“update”、“delete”三种操作
表名:指定的触发时间操作的表的名称
foreachrow:表示任何一条记录上的操作满足触发器事件都会触发该触发器
begin...end:表示开始到结束标签。
执行语句:表示触发器被触发以后执行的程序。

实例一:

创建一个响应delete操作的触发器

createtriggerdltafterdelete
onstudentforechorow
begin
deleteusernamefromstudent;
end;
译:
创建的触发器名:dlt
触发器执行时间:after
事件名:删除操作(delete)
表名:student
执行语句:从begin.....end之间的删除语句。

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

createtrigger触发器名before|after触发事件
on表名foreachrow
begin
执行语句1;
执行语句2;
执行语句3;
end;
译:
before|after:表示触发器执行的时间,前者是表示触发前执行,
后者是表示触发时间之后执行
触发事件:触发事件代表“insert”、“update”、“delete”三种操作
表名:指定的触发时间操作的表的名称
foreachrow:表示任何一条记录上的操作满足触发器事件都会触发该触发器
begin...end:表示开始到结束标签。
执行语句1:表示触发器被触发以后执行的程序1。
执行语句2:表示触发器被触发以后执行的程序2。
执行语句3:表示触发器被触发以后执行的程序3。

实例二:

创建一个响应delete操作的多个触发器

createtriggerdltafterdelete
onstudentforechorow
begin
insertintotimelog(savetime)values(new());
insertintotimeinfo(info)values('deleteact');
end;
译:
创建的触发器名:dlt
触发器执行时间:after
事件名:删除操作(delete)
表名:student
执行语句体:从begin.....end之间的删除语句。

3、查看触发器

showtrigger;

3.1、查看trigger表中触发器信息

select*frominfomation_schema.trigger;
译:
infomation_schema:是MySQL中默认存在的数据库,用于记录触发器信息的数据表

3.2、方法二查看

select*frominfomation_schema.triggerwheretrigger_name='触发器名称';

4、应用触发器

触发器的应用就是在你创建成功以后,单独的向表中执行相应的sql语句操作。通过查询去看看你执行的sql语句是否成功。查看timeinfo数据表的插入情况好而被首先执行的顺序。

5、删除触发器

droptrigger触发器名称;

三、结束语:

学到这里,我们的触发器就学完了,我们可以利用触发器进行数据的备份效果,当你删除某一条数据的时候,我将这条数据新建存储到另外的一张表中。这些都可以通过触发器实现的。想很好的操作触发器就不断的去实验和运用。


分享给朋友:
您可能感兴趣的文章:
随机阅读: