使用 存储过程+游标 循环更新大量数据

DROP PROCEDURE IF EXISTS temp_data;/*存在即删除*/DELIMITER //   /*有些数据库默认分号为执行语句结束符号,这里改下结束符号*//*创建临时存储过程*/
CREATE PROCEDURE temp_data()
BEGIN
DECLARE is_done INT DEFAULT 0;/*判断循环结束标识*/
DECLARE tempId CHAR(36);/*每条记录循环时的临时ID*//*定义游标*/
DECLARE namesIds CURSOR FOR SELECT id FROM names where status = 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET is_done = 1;/*上面数据消耗完设置循环结束标志为1 ,即为true*/
OPEN namesIds; /*打开游标*/REPEAT /*开始循环数据*/
FETCH namesIds INTO tempId;
IF NOT is_done THEN
UPDATE record SET nums = (SELECT COUNT(1) FROM history WHERE names_id = tempId)
WHERE
names_id = tempId;  /*更新语句*/
END IF;
UNTIL is_done END REPEAT;
CLOSE namesIds;  /*CLOSE,释放资源*/
END //DELIMITER ;  /*当创建完一个存储过程之后再将分隔符替换为分号,为了不影响其他的操作*/
CALL temp_data(); /*调用存储过程*/
DROP PROCEDURE temp_data;  /*调用完删掉*/

Mysql 循环更新相关推荐

  1. mysql循环更新_MySql多表循环遍历更新

    先给大家解释解释发表这篇博文的主要思想是: MySql数据库中存在大量的表结构,而且这些表都存在一个共同点,就是表中都有相同字段,比如id,name,city,adress,lat,lng.表中字段i ...

  2. mysql循环更新数据_大批量更新数据mysql批量更新的四种方法

    mysql 批量更新如果一条条去更新效率是相当的慢, 循环一条一条的更新记录,一条记录update一次,这样性能很差,也很容易造成阻塞. mysql 批量更新共有以下四种办法 1..replace i ...

  3. mysql循环遍历获取_MySql多表循环遍历更新

    先给大家解释解释发表这篇博文的主要思想是: MySql数据库中存在大量的表结构,而且这些表都存在一个共同点,就是表中都有相同字段,比如id,name,city,adress,lat,lng.表中字段i ...

  4. mysql 批量更新

    mysql更新语句很简单,更新一条数据的某个字段,一般这样写: 复制代码代码如下: UPDATE mytable SET myfield = 'value' WHERE other_field = ' ...

  5. MySQL批量更新死锁案例分析--转载

    问题描述 在做项目的过程中,由于写SQL太过随意,一不小心就抛了一个死锁异常,如下: [java] view plaincopyprint? com.mysql.jdbc.exceptions.jdb ...

  6. mysql+提升更新语句效率_MySQL加快批量更新 UPDATE优化

    如果是更新为同样的内容,没啥难度,直接在where里面下功夫就好了,大家都懂,我要说的是针对更新内容不一样的情况 首先,先看看网上转载的方法: mysql 批量更新如果一条条去更新效率是相当的慢, 循 ...

  7. MySql批量更新死锁案例分析

    http://blog.csdn.net/aesop_wubo/article/details/8286215 问题描述 在做项目的过程中,由于写SQL太过随意,一不小心就抛了一个死锁异常,如下: 表 ...

  8. mysql 记录更新 内部_MySQL 入门(1):查询和更新的内部实现

    摘要 在MySQL中,简单的CURD是很容易上手的. 但是,理解CURD的背后发生了什么,却是一件特别困难的事情. 在这一篇的内容中,我将简单介绍一下MySQL的架构是什么样的,分别有什么样的功能.然 ...

  9. MySQL批量更新数据

    mysql更新语句很简单,更新一条数据的某个字段,一般这样写: 1 UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_va ...

最新文章

  1. (chap4 IP协议) CIDR协议
  2. 翻转棋游戏c语言讲解,有没有人懂黑白棋(翻转棋)的核心算法
  3. 变压器相邻公交站 候车人提心吊胆[图]
  4. 【MFC】带图标的工具栏
  5. 两个引用指向同一个数组的内存图
  6. Python CSV 中查找指定字符串
  7. angular element()
  8. SpringMVC异常处理 自定义异常
  9. 2021-08-20 解决layUi 选项卡切换表格大小不匹配问题
  10. 【JAVA】FreeMarker学习1(Ftl)
  11. 《NS与网络模拟》第五章node示例
  12. 三菱mode bus tcp通讯_微服务中的异步消息通讯和事件驱动,你了解多少?
  13. 新版TP开发小额贷系统源码+可封装IOS安卓双端
  14. Win10微软拼音使用小鹤双拼方案
  15. Nik Collection v3.0.7 2020 Mac/Win PS/LR超强调色滤镜合集Nik插件中文版+中文教程
  16. 百度商桥修改服务器,百度商桥在线客服设置的操作步骤
  17. java课设 简单九宫格_Java实现九宫格的简单实例
  18. 广西交通职业技术学院计算机专业在哪个校区,广西交通职业技术学院宿舍怎么样...
  19. 10本 Linux PDF 书籍免费分享
  20. 【向生活低头】win10电脑使用录音机的注意事项

热门文章

  1. STM32_基础篇(1)学习资料准备
  2. [SPSS]因子分析和因子得分的SPSS实现——学生成绩因子构成和分科建议实例
  3. C++第三方日志库Pantheios
  4. python打印日历_Python实战练习——打印日历教程
  5. java问卷导入excel,将Excel数据直接上传到问卷星
  6. tunnel和channel区别
  7. 卡普雷卡与西西弗斯.C
  8. Revit建模绘制楼板时剖面图上如何修改使其在墙的外边界?
  9. 马尔可夫链的定义、举例和应用
  10. JetBrains公司旗下开发工具简介