mysql触发器new old用法详解
1.当使用insert语句的时候,如果原表中没有数据的话,那么对于插入数据后表来说新插入的那条数据就是new,如图所示:
2.当使用delete语句的时候,删除的那一条数据相对于删除数据后表的数据来说就是od,如图所示:
3.当使用update语句的时候,当修改原表数据的时候相对于修改数据后表的数据来说原表中修改的那条数据就是old,而修改数据后表被修改的那条数据就是new,如图所示:
------------------------------------------------------------------------------------------------------
mysql触发器new old用法详解
mysql触发器new old:"NEW . column_name"或者"OLD . column_name".在技术上处理(NEW | OLD . column_name)新和旧的列名属于创建了过渡变量("transition variables")。
对于INSERT语句,只有NEW是合法的;对于DELETE语句,只有OLD才合法;而UPDATE语句可以在和NEW以及OLD同时使用。
一个UPDATE中同时使用NEW和OLD的例子。
BEFORE UPDATE ON t22
FOR EACH ROW
BEGIN
SET @old = OLD.s1;
SET @new = NEW.s1;
END;
在触发器中,还要看触发器的时机,如果是插入前动手的,也可以写成set @t_time=NOW();t_time不需要预先定义,也不用NEW,或是OLD。
例子:
set @t_id= (select max(ID) from P_Booth);
set @t_name= 'P_Booth';
set @t_time=NOW();
INSERT INTO `L_InsertLogs` (`Counts`, `TablesName`,`OperateTime`) VALUES (@t_id,@t_name,@t_time);
end
如果是在更新之后要动手的,那需要用NEW来定义, 如下:
set @t_id= new.ID;
set @t_name= 'P_Booth';
set @t_time=NOW();
INSERT INTO `L_UpdateLogs` (`Counts`, `TablesName`,`OperateTime`) VALUES (@t_id,@t_name,@t_time);
end
如果是在删除之后要动手的,那就需要用OLD来定义了,如下:
因为ID值其实已经被删除,却还是可以用,实在是有点不太理解数据库删除数据的真正机制。
set @t_id= old.ID;
set @t_name= 'P_Booth';
set @t_time=NOW();
INSERT INTO `L_DeleteLogs` (`Counts`, `TablesName`,`OperateTime`) VALUES (@t_id,@t_name,@t_time);
end
mysql触发器new old用法详解相关推荐
- mysql中 where in 用法详解
https://blog.csdn.net/haibo0668/article/details/52584307 sssss mysql中 where in 用法详解 我是高手高手高高手 2016-0 ...
- mysql increment_mysql中auto_increment用法详解
在mysql中AUTO_INCREMENT类型的属性用于为一个表中记录自动生成ID功能,也就是会自动自增一个ID了,如现在是1下次会自动是2了,就这么简单,下面来看mysql中auto_increme ...
- MySQL中Case When用法详解
最近,在学习Hive基础知识时,遇到了遇到了Case When Else End语法,以前学习MySQL时忽略了这部分知识点,现总结一下相关的知识给大家.首先练习一个例子如下: 一.学生课程成绩统计 ...
- mysql 创建游标报错,MySQL游标概念与用法详解
本文实例讲述了mysql游标概念与用法.分享给大家供大家参考,具体如下: 1.游标的概念(cursor) 一条sql,对应n条资源,取出资源的接口,就是游标,沿着游标,可以一次取出1行.如果开发过安卓 ...
- MySQL中CONCAT()函数用法详解
需求:需要将将俩字符串拼接在一起 1.MySQL中CONCAT()函数拼接字符串 CONCAT(str,str2,str3...) 可以将两个或者多个参数拼接在一起 注意事项: ①返回结果为连接参数产 ...
- MySQL索引作用和用法详解
一.引言 对于该文章,照例尽量通俗的写,并注明一些细节和可能出现问题的地方. 此外,该文章只是写了索引的创建,不代表检索(查询)的应用,检索后面会写道. 标注:红色表示十分重要,蓝色表示细节: 在阅读 ...
- mysql中in的用法详解
一.基础用法 mysql中in常用于where表达式中,其作用是查询某个范围内的数据. select * from where field in (value1,value2,value3,-) 当 ...
- MySQL中的limit用法详解
limit的详细用法 1.用于强制返回指定的记录行数 在查询中,经常要返回前几条或者中间某几行数据时,用到limit 语法如下: select * from table_name limit [off ...
- mysql limit to_MYSQL LIMIT 用法详解
在mysql的limit用法中,网上有这样的论述: "//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: mysql> SELECT * FROM ta ...
- MySQL命令之show用法详解
文章目录 参考示例 (一)查看表字段详情 (二)显示某个表的创建语句 (三)显示所有数据库的名称 (四)查看已选数据库中的所有表 (五)查看某个数据库的创建语句 (六)查看数据库系统的进程 (七)查看 ...
最新文章
- vc++给控件添加消息和函数
- 手写 instanceof 方法
- 初三下半年应该怎样合理的学习?
- pandas 数据规整化 —— 合并、清理与转换
- 设置HTML元素的透明度
- 【leetcode】1041. Robot Bounded In Circle
- 索尼电视测试软件,索尼智能电视检测漏光、坏点等现象的简单小教程
- 盛世昊通谈跨界造车风潮,不同车企到底打什么主意
- 平板电脑安装软件_手机象棋软件手机、平板、电脑三平台同时安装!学棋涨棋必备...
- 基于Android的太阳方位角计算工具
- 前后端分离开发,如何定义各类错误码?
- VASP自旋(NM、AM、AFM)
- 服务器文件夹怎么用快捷方式打开,文件夹变成快捷方式怎么办 文件夹变成快捷方式解决方法...
- 用stocker进行股票预测
- wchar* char*相互转换
- 第四十五天 百度地图定位SDK
- 一款非常优秀的数据库建模软件PDMman
- 6、电磁场与电磁波麦克斯韦方程组建立
- 亚稳态及亚稳态解决方案_通俗易懂篇!
- iOS 如何查看app提交审核是否使用广告标识符(IDFA)