mysql事件侦听器_mysql 触发器
监听数据进行操作: 有点类似于js的事件。在当前表上,设置一个对每行数据的一个监听器,监听相关事件每当事件发生时,会执行一段由SQL完成的一段功能代码。
触发器的元素:
mysql 触发器 监听数据进行操作: 有点类似于js的事件。在当前表上,设置一个对每行数据的一个监听器,监听相关事件每当事件发生时,会执行一段由SQL完成的一段功能代码。 触发器的元素: 事件和发生时间时执行的代码。 触发器的创建: Create trigger 名字 事件 执行性代码。 触发器的事件分为: 插入 insert 删除 delete 修改 update 事件的时机: before执行之前 和 after执行之后. 由时机和事件在一起,形成了六种事件。 触发器的注意事项: 一个完整的事件应该规定,在哪张表上,什么时机,什么动作上。 Create trigger trigger_nameafter update on table_name for each row Update table_name set cz_money=cz_money-20; Create trigger 创建触发器. trigger_name:触发器名字. after update on table_name: 为 触发的事件 当czbk_truendt 表发生update 时,触发Updatetable_name set cz_money=cz_money-20;这个语句! 注意:1. 触发器不能重名 2.一个表同一个事件只能有一个触发器。 触发器的 删除 查看 删除: Drop trigger name ; 查看: show create trigger name; 触发器的数据old和new 在触发器内,获得触发该触发程序时的数据,利用触发程序内的 new 和 old 来完成。 Old : 监听事件所在表上的数据,在事件发生之前的数据,旧的数据。 New : 监听表上,事件发生之后,新处理后的数据。 Old.stu_money 表示 stu_money字段老的数据,new.stu_money 表示 stumoney字段 的 新的数据;如果是 insert 事件 不能使用 old; 如果是 delete 事件 不能使用 new。 如果一个触发程序,由多条sql 语句应该怎么办: 1. 语句组成语句块用(begin end)来标示语句块。 2. 语句组中的每个语句后需要用语句结束符来分割 ;如果使用分号作为每个语句的结束符那么mysql可能会认为第一个语句结束就是触发器的结束,所以我们需要在创建触发器前修改语句结束符mysql触发器,触发器创建结束后在修改回来。 Delimiter 命令可以设置命令结束符。 Delimiter $$;//将命令结束符号该为$$ Create trigger ruxue after insert on czbk_student for each row Begin//触发语句组开始 Update class set stu_cout=stu_count+1;//应为在上面讲结束符改为$$ 了所以分号不会结束语句 Update class set cz_money=cz_money+20; End $$//触发语句组结束 使用$$ 结束触发器命令 Delimiter;在将语句结束符修改回来! (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |