MySQL触发器之insert、update、delete的使用
一、建表
testb_log表
/* test库下建立testb_log表 */
CREATE TABLE `test`.`testb_log` (`ID` int(8) NOT NULL AUTO_INCREMENT,`TESTB_ID` int(11) DEFAULT NULL,`NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`AGE` int(11) DEFAULT NULL,`STATUS` int(1) DEFAULT NULL,`NEW_STATUS` int(1) DEFAULT NULL,`ACTION` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`TIME` datetime(0) DEFAULT NULL,PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 19 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
testb表见MySQL存储过程之游标的使用
二、触发器之insert
delimiter $$
CREATE TRIGGER tr_testb_insert AFTER INSERT ON testb FOR EACH ROW
BEGININSERT INTO testb_log (TESTB_ID,`NAME`, AGE,`STATUS`,`ACTION`,TIME)
VALUES(NEW.ID, NEW.NAME, NEW.AGE, NEW.STATUS,'INSERT',NOW());
END;
$$
三、触发器之update
delimiter $$
CREATE TRIGGER tr_testb_update AFTER UPDATE ON testb FOR EACH ROW
BEGININSERT INTO testb_log (TESTB_ID,`NAME`, AGE,`STATUS`,`ACTION`,TIME, NEW_STATUS)
VALUES(OLD.ID, OLD.NAME, OLD.AGE, OLD.STATUS, 'UPDATE', NOW(), NEW.STATUS);
END;
$$
四、触发器之delete
delimiter $$
CREATE TRIGGER tr_testb_delete BEFORE DELETE ON testb FOR EACH ROW
BEGININSERT INTO testb_log (TESTB_ID,`NAME`, AGE,`STATUS`,`ACTION`,TIME)
VALUES(old.ID, OLD.NAME, OLD.AGE, OLD.STATUS,'DELETE',NOW());
END;
$$
五、其他
/*查看已启用的触发器*/
SHOW TRIGGERS;
/*删除名为tr_testb_insert的触发器*/
DROP TRIGGER tr_testb_insert;
六、验证
①插入一条数据
INSERT INTO testb ( ID, NAME, AGE, STATUS ) VALUES ( 1, '小明', 11, 0 )
testb_log表显示如下:
②更新一条数据
UPDATE testb SET `STATUS`='1' WHERE ID=1
testb_log表显示如下:
③删除一条数据
DELETE FROM testb WHERE ID=1
testb_log表显示如下:
MySQL触发器之insert、update、delete的使用相关推荐
- mysql字符集,insert,update,delete,select
发现有错误:数据太长了. //查看数据库的所有编码: show variables like 'character%'; -----+ | character_set_client | utf ...
- linux mysql 事务_linux下mysql Insert update delete 事务 用户管理
linux下mysql Insert update delete 事务 用户管理 1.INSERT插入语句格式: INSERT INTO tb_name (字段1, 字段2, ...) VALUES ...
- mysql删除语句事务_事务用来管理 insert,update,delete 语句
MySQL 事务 MySQL 事务主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数 ...
- PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)
原文: PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD) PHP 5 及以上版本建议使用以下方式连接 MySQL ...
- SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)
SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete) SQL Server 2008提供了一个增强的SQL命令Merge,用法参看MS ...
- mybatis配置insert/update/delete同一个模板
insert,update,delete标签只是一个模板,在操作时是以sql语句为核心的, 即在做增/删/改时,insert/update/delete便签可以通用, 但做查询时只能用 select ...
- 内容必须匹配 (cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|selec
元素类型为 "mapper" 的内容必须匹配 "(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update ...
- 数据操纵:SELECT, INSERT, UPDATE, DELETE
1 SELECT 句法 2 3 SELECT [STRAIGHT_JOIN] 4 [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] 5 [ ...
- sql触发器(insert,update,delete)
--insert 触发器 create trigger tri_insert on student --将要进行更改的表名 for insert --给表插入一条数据的时候触发 as declare ...
最新文章
- Java 虚拟机总结给面试的你(下)
- 我怎么在AD里面找到已经改名的Administrator账户?
- ubuntu18.04虚拟机突然不能上网问题解决办法
- AR独角兽的死亡教训:融资3亿美元后,成投资人提线木偶,营销大于产品技术...
- 程序开发中那些莫名奇妙的bug
- mysql安装教程_mysql8.0.20安装教程,mysql下载安装教程8.0.20
- Python Apex 武器自动识别与压枪 全过程记录
- Pycharm中如何pip下载包更快
- dscms源码分析笔记
- Flink DataStream的多流、键控流、窗口、连接、物理分区转换算子的使用
- Chrome浏览器 抢购、秒杀插件,秒杀助手
- Amcharts 入门教程
- win7怎么查看计算机用户名,Win7怎么查看自己电脑ip地址?
- css 设置背景图片模糊效果
- 航天工业出版社C语言答案,c语言实验答案桂林航天工业高等学校
- VR在国内越做越“廉价”,到底需要反思什么?
- 【python】装饰模式
- C++ 调用打印机 打印一段文字
- 数睿数据资讯 |《洞见・大咖说》对话数睿数据李争辉 探讨400%高增长背后的关键抓手
- GitHub 热点速览 Vol.18:刷 LeetCode 的正确姿势