MYSQL触发器的操作
来源:互联网 发布:java map实现内存缓存 编辑:程序博客网 时间:2024/06/07 21:45
1 为什么使用触发器
触发器是mysql的数据库对象之一,那为什么要使用触发器呢?在开发具体项目时,经常会遇到如下实例:
* 在学生表中拥有字段学生姓名,字段学生总数,每当添加一条关于学生记录时,学生的总数就必须同时改变。
* 在顾客信息表中拥有字段顾客名字,字段顾客的电话和字段顾客的地址,每当添加一条顾客记录时,都需要检查电话号码格式是否正确,顾客地址是否正确。
上述实例虽然所需实现的业务逻辑不同,但是他们有共同之处,即都需要在表中发生改变时,自动进行一些处理。这时就可以使用触发器处理数据库对象。例如,对第一个实例,可以创建一个触发器对象,每添加一条学生记录,就执行一次计算学生总数的操作。
mysql软件在触发如下语句时,就会自动添加所设置的操作:
INSERTE语句。
DELETE语句。
UPDATE语句。
其他sql语句则不会激活触发器,mysql5软件才开始支持触发器数据库对象。
2 创建触发器
2.1创建一条执行语句的触发器
语法形式:create trigger trigger_name
BEFORE|AFTER trigger_EVENT
ON TABLE_NAME FOR EACH ROE trigger_STMT
trigger_name:表示创建触发器的名称。
BEFORE和AFTER指定触发器执行的时间,其中前者是指在触发器事件之前,执行触发器执行语句,后者指在触发器执行之后执行触发器语句。
trigger_EVENT:表示触发事件,即触发器执行条件,包含INSERTE语句, DELETE语句,UPDATE语句。
TABLE_NAME :表示操作表的名字。
FOR EACH ROE:表示任意一条记录上的操作满足触发器都会执行。
tigger_STMT:表示激活触发器后执行的语句。
例:部门表t_dept 和日记表t_diary创建触发器实现向部门表中插入记录就会再插入之前向日记表中插入当前时间。
sql语句:CREATE TRIGGER tri_diarytime
BEFORE INSERT ON t_dept FOR EACH ROW
INSERT INTO t_diary VALUES(NULL,'t_dept',now());
为了校验触发器的功能向表中t_dept插入一条记录
INSERT INTO t_dept VALUES(1,'test','shangxi');
SELECT*FRON t_diary;
2.2创建多条语句的触发器
语法形式:create trigger trigger_name
BEFORE|AFTER trigger_EVEVT ON TABLE_NAME FOR EACH ROW
BEGIN trigger_STMT
END
例:创建触发器tri_diarytime2
sql语句:
DELIMITER $$
CREATE TRIGGER tri_diarytime2
AFTER INSERT ON t_dept FOR EACH ROW
BEGIN
INSERT INTO t_diary VALUSE(NULL,‘t_dept’,now());
INSERT INTO t_diary VALUSE(NULL,‘t_dept’,now());
END
$$
DELIMITER;
- MYSQL触发器的操作
- mysql数据库触发器的操作
- MySQL数据库的触发器操作
- mysql中的触发器和事务的操作
- MySQL(六)触发器的操作
- MySQL触发器基本操作
- mysql触发器操作
- mysql触发器相关操作
- mysql的触发器同数据库多表的数据操作
- mysql单表操作 触发器
- mysql触发器(trigger)操作memcache
- Memcache mysql触发器操作memcache
- mysql触发器简单操作使用
- Mysql数据库中的触发器操作
- MYSQL入门学习之十一:触发器的基本操作
- MYSQL入门学习之十一:触发器的基本操作
- mysql触发器不能进行修改操作的总结
- mysql 触发器中操作 动态表名 的解决办法
- CAN之上层协议(CANOpen)实现
- JSON数组去重 * @param: [array] json Array * @param: [string] 唯一的key名,根据此键名进行去重
- OpenLayers API 离线地图发布源码示例功能
- 面试必问50题
- C#基础知识之this关键字介绍
- MYSQL触发器的操作
- Hadoop集群安装-企业级
- Opncv学习之使用方向滤波器检测边缘
- [LeetCode]242. Valid Anagram
- 邀请函 | 千视通诚邀您参加2017第十六届深圳安博会
- 探究InnoDB可重复读
- LeetCode 79. Word Search
- 第二阶段velocity框架熟悉
- c语言实现选择排序、冒泡排序、插入排序