数据库——(15)触发器
来源:互联网 发布:域名备案过怎么注销 编辑:程序博客网 时间:2024/06/05 14:28
触发器:trigger,事先为某张表绑定好一段代码,当表中的某些内容发生改变的时候(增和改)系统会自动触发代码、执行。
触发器要素:事件类型,触发时间,触发对象
事件类型:增删改:insert,delete,update触发时间:前后:before,after触发对象:表中的每一条纪录(行)
一张表中只能拥有一种触发时间的一种类型的触发器,最多一张表能有6个触发器。
创建触发器
在MySQL高级结构中,没有大括号,都是用对应的字符符号代替。
基本语法:
–临时修改语句结束符
delimiter 自定义符号:后续代码只有碰到自定义符号才算结束
create trigger 触发器名字 触发时间 事件类型 on 表名 for each row
begin –代表左大括号:开始
触发器内容:每行内容都必须使用语句结束符分号
end –代表右大括号:结束
自定义符号 –语句结束符
delimiter; –将自定义符号修正
delimiter $$create trigger after_order after insert on my_order for each rowbeginupdate my_goods set inv = inv-1 where id = 2;end$$delimiter ;
查看触发器
查看所有触发器或者模糊匹配
show triggers;
查看触发器创建语句
show create trigger 触发器名字;
所有触发器存在一张表中:information_schema.triggers
select * from information_schema.TRIGGERS;
使用触发器
触发器不需要手动调用,当某种情况发生时会自动触发。
修改触发器&删除触发器
触发器不能修改,只能先删除后新增
drop trigger 触发器名字;
drop trigger after_order;
触发器纪录
不管触发器是否触发了,只要当某种操作准备执行,系统就会将当前要操作的纪录的当前状态和即将执行之后的新的状态分别保留下来,共触发器使用。其中,要操作的当前状态保存到old中,操作之后的可能状态保存在new中。old、new都在触发器表中。
old代表旧纪录,new代表新纪录:删除的时候没有new,插入的时候没有old。
使用方式:old.字段名/new.字段名(new代表的是假设发生之后的结果)
delimiter $$create trigger after_order after insert on my_order for each rowbeginupdate my_goods set inv = inv-new.g_number where id = new.g_id;end$$delimiter ;
- 数据库——(15)触发器
- 数据库——触发器
- 数据库——触发器
- 再看数据库——(3)触发器
- 数据库回顾(三)—触发器
- 数据库原理——触发器
- SQLServer数据库——触发器
- 触发器——————数据库(SQL)
- 菜鸟学数据库(二)——触发器
- 菜鸟学数据库(二)——触发器
- 数据库之——索引、触发器、事务(存储引擎)
- 【Sqlit数据库官方API学习—part02】触发器(Trigger)
- 008 数据库对象—触发器—讲解
- 数据库后台优化——触发器
- 数据库——约束、断言、触发器
- 数据库对象——触发器、索引
- 数据库触发器(oracle)
- 触发器-----------数据库(SQL)
- URI、 URL 和 URN 的区别
- Nginx相关配置
- mybatis配置oracle批量插入
- PHP 学习
- R语言- 批量导入excel的xlsx格式数据文件
- 数据库——(15)触发器
- cdh5版本中的oozie hive action使用及踩坑集锦
- Scala学习—隐式转换与隐式参数
- hdu6034
- DevOps特征
- 如何看待流行的设计风格
- sass + compass
- 2017年7月双周计划
- 数据源导出为Excel java后台代码整理