mysql学习记录:触发器
来源:互联网 发布:silo软件下载 编辑:程序博客网 时间:2024/06/04 18:07
触发器:对某个表进行某种操作时,激活触发器,从而执行触发器包含的操作(delete、insert、update)。
1.创建触发器
create trigger trigger_name before|after trigger_event on table_name for each row trigger_stmt
例如,当我对表t_student进行任何插入(insert)操作后,激活触发器tri_add_teacher_number,执行触发器包含的操作update t_teacher set number=number+1:
1)创建包含一条执行语句的触发器
CCREATE TRIGGER tri_add_teacher_number AFTER INSERT
ON t_student FOR EACH ROW
UPDATE
t_teacher
SET
number = number + 1;
执行:INSERT INTO t_student VALUES('小埋','女','德国骨科');
然后查看表t_teacher你会发现表中number字段数字都增加了1;
删除触发器:drop trigger tri_add_teacher_number;
2)创建包含多条执行语句的触发器
DELIMITER ##
CREATE TRIGGER t_many_update_number AFTER INSERT ON t_student FOR EACH ROW
BEGIN
UPDATE t_teacher SET number=number+1;
UPDATE t_teacher SET number=number-1;
END
##
DELIMITER ;
执行:INSERT INTO t_student VALUES('汪星人','男','喵星人麾下大将军,经常‘汪’的一声哭了出来!');
结果:表中number字段值不变。
解释:DELIMITER 设置结束符号,mysql默认的结束符号是“;”,因为会和语句中的“;”冲突,所以这里我们先将默认结束符号设置成“##”,最后别忘了将结束符号改回“;”
2.查看触发器
查看所有触发器:show triggers;
如果需要查看指定触发器内容:
1)use information_schema;(选择mysql自带的information_schema数据库)
2)SELECT * FROM TRIGGERS WHERE TRIGGER_NAME='t_many_update_number';(从表triggers中选择trigger_name=‘我们需要找的触发器的名字’)
3.删除触发器
use sqltest;
DROP TRIGGER t_many_update_number;
Ps:一般触发器名字以tri_***_***格式,我上面创建的那个触发器没注意名字格式,导致我删除触发器的时候还浪费了些时间找这个名字。因为一般表以t_***_***_***;,视图一般以v_***_***格式。
- mysql学习记录:触发器
- Mysql 存储过程,触发器,视图 学习记录
- mysql 学习记录(十二)--触发器
- MySQL触发器实例(记录触发器)
- mysql 创建触发器 记录
- mysql 触发器学习
- MySql触发器学习
- mysql 触发器学习
- MySQL 触发器简单学习
- mysql 触发器学习
- mysql 触发器学习
- mysql触发器学习
- mysql 触发器学习
- mysql触发器学习
- mysql 触发器学习
- MySQL触发器 trigger学习
- mysql触发器学习
- mysql触发器学习
- req.accepts(types)
- Vector erase操作 core down
- shiro学习感触
- python查新一年中的几号是这一年的多少天
- 神经网络相关好文
- mysql学习记录:触发器
- @Controller,@RestController ,@ResponseBody的区别
- iOS 图片上传被后台给旋转了90度
- Loadrunner回放脚本时报错Action.c(41): Error -27979: Requested form not found [MsgId: MERR-27979]
- python itertools.product的用法
- 如何让图片按比例响应式缩放、并自动裁剪的css技巧
- 转:iris数据集及简介
- 简单的git命令
- selenium 3+python3.6+firefox的Windows详细环境搭建