create trigger 触发器名 before | after 触发事件 on 表名 for each row begin 执行语句; end; 译: before | after:表示触发器执行的时间,前者是表示触发前执行, 后者是表示触发时间之后执行 触发事件:触发事件代表“insert”、“update”、“delete”三种操作 表名:指定的触发时间操作的表的名称 for each row :表示任何一条记录上的操作满足触发器事件都会触发该触发器 begin ... end:表示开始到结束标签。 执行语句:表示触发器被触发以后执行的程序。 实例一:
创建一个响应delete操作的触发器
create trigger dlt after delete on student for echo row begin delete username from student; end; 译: 创建的触发器名:dlt 触发器执行时间:after 事件名:删除操作(delete) 表名:student 执行语句:从begin.....end之间的删除语句。 2、创建多个执行语句的触发器
create trigger 触发器名 before | after 触发事件 on 表名 for each row begin 执行语句1; 执行语句2; 执行语句3; end; 译: before | after:表示触发器执行的时间,前者是表示触发前执行, 后者是表示触发时间之后执行 触发事件:触发事件代表“insert”、“update”、“delete”三种操作 表名:指定的触发时间操作的表的名称 for each row :表示任何一条记录上的操作满足触发器事件都会触发该触发器 begin ... end:表示开始到结束标签。 执行语句1:表示触发器被触发以后执行的程序1。 执行语句2:表示触发器被触发以后执行的程序2。 执行语句3:表示触发器被触发以后执行的程序3。 实例二:
创建一个响应delete操作的多个触发器
create trigger dlt after delete on student for echo row begin insert into timelog(savetime) values(new()); insert into timeinfo(info) values('deleteact'); end; 译: 创建的触发器名:dlt 触发器执行时间:after 事件名:删除操作(delete) 表名:student 执行语句体:从begin.....end之间的删除语句。 3、查看触发器
show trigger; 3.1、查看trigger表中触发器信息
select * from infomation_schema.trigger; 译: infomation_schema:是MySQL中默认存在的数据库,用于记录触发器信息的数据表 3.2、方法二查看
select * from infomation_schema.trigger where trigger_name='触发器名称'; 4、应用触发器