mysql触发器
来源:互联网 发布:供给侧改革 知乎 编辑:程序博客网 时间:2024/06/05 19:04
监听数据进行操作:
在当前的表上,设置一个对每行数据的一个监听器。监听相关事件。每当事件发生时。会执行一段由sql完成的一段功能代码。
触发器的元素:
事件,执行代码。
创建触发器:
create trigger 名字 事件 执行性代码。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Create trigger 名字 事件 执行性代码。
事件:插入 insert
删除 delete
修改 update
事件的时机:执行之前和执行之后,After before
由时机和事件在一起形成了六个mysql事件
befor insert ,before delete,before update
after insert,after delete,after update
一个完整的事件,在表上的什么时机的什么动作上。
可执行代码:
sql语句组成的代码。
eq:create trigger jiaobanfei
after update on czbk_student--->事件
for each row
update czbk set cz_money=cz_money+20-->可执行性代码
如何触发,触发程序:
特定事件发生,即触发:
update czbk-student set stu_money=stu_money+20 where id=1
NOTIC:
1,触发器不能同名。
2,目前mysql只支持一类事件设置一个触发器。
管理触发器:
删除触发器:
drop trigger Triger_name
查看触发器:
show triggers \G
如果你在触发器里面对刚刚插入的数据进行了 insert/update, 会造成循环的调用.
如:
create trigger test before update on test for each row update test set NEW.updateTime = NOW() where id=NEW.ID; END
应该使用set:
create trigger test before update on test for each row set NEW.updateTime = NOW(); END
create trigger jiaobanfei_new after update on czbk_studentfor each rowupdate czbk set cz_money=cz_money+(old.stu_money-new.stu_money);
old:代表事件发生之前,监听表上的旧数据。
new:代表事件发生之后,监听表上的新数据。
update :old 和new 可以同时使用。即更新之前,更新之后都存在数据。
insert:只能使用new ,不能使用old,因为insert之前是没有数据的。
delete:只能使用old,不能使用new,因为删除之后是没有数据记录的。
如果一个触发器触发程序有多条语句组成:
1,语句组成语句块(begin end)用来标识语句块。
2,语句块的语句需要独立的语句结束符,分好。
命令行:由于触发器程序内使用分好作为语句结束符。那么当命令行客户端碰到分号时,就应该理解成触发程序内的子语句结束
而不是整个创建触发器的语句结束。
应该通过修改命令行的语句结束符达到目的
Delimiter语句可以完成设置语句结束符。
delimiter $$ //修改分号作为语句结束的标志create trigger jiaobanfei_new after insert on czbk_student for each row //用bigin.....end 包裹其中的语句块beginupdate czbk set stu_count=stu_count+1;update czbk set cz_money=cz_money+new.stu_money;end$$ 以此双$号作为结束标志创建完成 修改成以分号作为语句结束标志:delimiter ;
- 【mysql 触发器】触发器使用
- MYSQL 触发器
- mysql 触发器
- Mysql 触发器
- mysql 触发器
- mysql触发器
- MYSQL 触发器
- MySQL触发器
- mysql 触发器
- mysql触发器
- MYSQL 触发器
- mysql 触发器
- mysql 触发器
- MySQL触发器
- MYSQL触发器
- mysql触发器
- mysql触发器
- mysql触发器
- 计算机硬件的五大单元
- windows+nginx+mongodb+php配置
- 每日一算法:八皇后问题
- 405 Method Not Allowed
- UIView知识总结
- mysql触发器
- SQL练习—2
- 一步步实现服务器推送通知
- CRS-4639: Could not contact Oracle High Availability Services
- 统计效率瓶颈并评测解决
- C语言函数集(十六)
- linux添加开机自启动脚本示例详解
- ORACLE的JDBC简单写法
- Java 数组在内存中的结构