mysql 触发器 for each row 理解_“for each row”如何在mysql中的触发器中工作?

FOR EACH ROW表示每个匹配行的更新或删除.

除非查询中有where条件,否则触发器主体不会遍历整个表数据.

下面演示了一个工作示例:

创建样本表:

drop table if exists tbl_so_q23374151;

create table tbl_so_q23374151 ( i int, v varchar(10) );

-- set test data

insert into tbl_so_q23374151

values (1,'one'),(2,'two' ),(3,'three'),(10,'ten'),(11,'eleven');

-- see current data in table**:

select * from tbl_so_q23374151;

+------+--------+

| i | v |

+------+--------+

| 1 | one |

| 2 | two |

| 3 | three |

| 10 | ten |

| 11 | eleven |

+------+--------+

5 rows in set (0.00 sec)

用于记录触发器主体中循环计数的样本表:

-- let us record, loop count of trigger, in a table

drop table if exists tbl_so_q23374151_rows_affected;

create table tbl_so_q23374151_rows_affected( i int );

select count(*) as rows_affected from tbl_so_q23374151_rows_affected;

+---------------+

| rows_affected |

+---------------+

| 0 |

+---------------+

定义删除触发器:

drop trigger if exists trig_bef_del_on_tbl_so_q23374151;

delimiter //

create trigger trig_bef_del_on_tbl_so_q23374151 before delete on tbl_so_q23374151

for each row begin

set @cnt = if(@cnt is null, 1, (@cnt+1));

/* for cross checking save loop count */

insert into tbl_so_q23374151_rows_affected values ( @cnt );

end;

//

delimiter ;

现在,测试删除操作:

delete from tbl_so_q23374151 where i like '%1%';

-- now let us see what the loop count was

select @cnt as 'cnt';

+------+

| cnt |

+------+

| 3 |

+------+

现在,检查主表上的触发效果:

-- now let us see the table data

select * from tbl_so_q23374151;

+------+-------+

| i | v |

+------+-------+

| 2 | two |

| 3 | three |

+------+-------+

2 rows in set (0.00 sec)

select count(*) as rows_affected from tbl_so_q23374151_rows_affected;

+---------------+

| rows_affected |

+---------------+

| 3 |

+---------------+

1 row in set (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS 11: CORE ML—浅析

本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/OWD5UEiVu5JpYArcd2H9ig 作者:liujizhou 导语:在刚刚过去的WWDC上&#xff0…

mysql定义shell变量_shell 变量的定义,赋值,运算

一、变量类型1.1、自定义变量1.定义变量不能使用纯数字命名,不能使用横杠命名变量名变量值[rootlocalhost ~]# nameerha2.引用变量$变量名 或者 ${变量量名}3.查看变量值echo$变量量名[rootlocalhost ~]# echo $nameerha4.取消变量[rootlocalhost ~]# unset name[ro…

angular的uiRouter服务学习(5) --- $state.includes()方法

$state.includes 方法用于判断当前激活状态是否是指定的状态或者是指定状态的子状态. $state.includes(stateOrName,params,options) $state.includes方法接受三个参数,其中第二和第三个都不知道是干啥的...估计也不太用得到,就暂时不管了... stateOrName:字符串(必填). 是一个…

前端学习(2487):在VUE中使用element-ui的el-select组件时出现该报错

一. 报错场景 在VUE中使用element-ui的el-select组件时出现该报错 [Vue warn]: Missing required prop: "value" 1 二. 报错原因 2.1.el-select中没有进行双向数据绑定(v-model) 2.2 el-option没有进行value赋值 三. 具体示例 3.1 报错…

php 正则mysql语句_MySQL正则表达式搜索 - mysql数据库栏目 - 自学php

products表如下:1. 基本字符匹配vcrH1NrV7j2wdDL0cv3o6zWu9KqcHJvZF9uYW1l1tCw/LqswcvLcvRy/e1xNfWt/uzb/J0tTBy6OstvhMSUtFyOe57K708PNqMXkt/ujrMTHw7TSqsfzcHJvZF9uYW1l0vL0cv3tcTX1rf70qrN6sirxqXF5KO60rKzcrHy7XPwsPmtcTA/dfTo6zQ6NKqyrnTwyBMSUtFIA"JetPa…

皇室战争

题目大意: 初始有E点体力值,每天可以开宝箱消耗k体力值,体力值要保证>0 每次开宝箱可获得k*a[i]的愉悦度 求最大愉悦度 样例输入115 2 22 1样例输出112样例1解释第一天用5体力, 接下来回复2点体力, 用光。限制与约定数据编号 cas N E 时间限制(S)0 10 10 10 11 100 100 100 …

python 类和对象 有必要学吗_类与对象-python学习19

类与对象类:我们常用类来划分一个个特定的群体;我们所说的类,是物以类聚的类,是分门别类的类,是多个类似事物组成的群体的统称。类的概念能帮助我们快速理解和判断事物的性质。类(class),比如整数、字符串、…

codevs 2822 爱在心中

时间限制: 1 s空间限制: 128000 KB题目等级 : 钻石 Diamond题目描述 Description“每个人都拥有一个梦,即使彼此不相同,能够与你分享,无论失败成功都会感动。爱因为在心中,平凡而不平庸,世界就像迷宫,却又让…

python 遍历对象_python js对象的遍历

下面是两组数据格式;都是以对象的形势;现在我要将属性值提取出来;做成一个二级部门导航栏;abc里面的做一级,asd做二级点击厂一宣示对应的部门;点击厂二时候宣示对应的部门;把原有的隐藏var abc{…

最简单的基于FFmpeg的移动端样例:IOS 视频转码器

最简单的基于FFmpeg的移动端样例系列文章列表:最简单的基于FFmpeg的移动端样例:Android HelloWorld最简单的基于FFmpeg的移动端样例:Android 视频解码器最简单的基于FFmpeg的移动端样例:Android 视频解码器-单个库版最简单的基于F…

php去除英文和标点,php 过滤英文标点符号及过滤中文标点符号代码_php技巧

php 过滤英文标点符号 过滤中文标点符号 代码function filter_mark($text){if(trim($text))return ;$textpreg_replace("/[[:punct:]\s]/", ,$text);$texturlencode($text);$textpreg_replace("/(%7E|%60|%21|%40|%23|%24|%25|%5E|%26|%27|%2A|%28|%29|%2B|%7C|…

java调用js匿名函数参数,js匿名函数作为函数参数详解

由衷的感叹,js真是烦。学到现在,渐渐理解了什么是:语言都是通用的,没有好不好,只有擅长不擅长。继承,多态,甚至指针,c能实现,c,java有,javascript…

php 顺序结构,顺序存储结构php实现

// php实现顺序存储$arr [1,3];ListInsert($arr, 2, 6);var_dump($arr);$e GetElem($arr, 2);var_dump($e);// 顺序存储结构的插入function ListInsert(Array &$arr, int $i, int $e){$count count($arr);if($i < 1 || $i > $count 1){throw new Exception(‘数据…