CREATE DEFINER=`root`@`%` PROCEDURE `removeAccPartnerSettle`()
BEGIN#Routine body goes here...declare removeId int(11) default 0;# 已经处理数据条目数declare cnt int(11) default 0;# 内部批次结束标志declare done int default 0;# 转移表数据结构declare intoCreated datetime(0);declare intoUpdated datetime(0);# 处理的最大iddeclare splitId int(11);# 查询剩余条目数declare tmpCnt int(11);SELECT max(id) INTO splitId FROM acc_partner_settle_copy1 WHERE state = 1 and created <= '2021-01-01';while cnt < 30000 do # 一次处理条目数SELECT COUNT(1) INTO tmpCnt FROM acc_partner_settle_copy1 WHERE state = 1 and id <= splitId;# 游标BEGIN# 建立游标并且重新给予变量类型declare cur cursor for SELECT `id` AS removeId, `created` AS intoCreated, `updated` AS intoUpdatedFROM acc_partner_settle_copy1 WHERE state = 1 and id <= splitId LIMIT 0, 3000;DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;# 开启游标OPEN cur;# 游标开始循环READ_LOOP:LOOP# 提取游标值FETCH cur INTO removeId,intoCreated,intoUpdated;# 游标结束标志, 需要中止游标IF done THENLEAVE READ_LOOP;END IF;# =================================== 代码SET cnt = cnt + 1;# 插入新表INSERT INTO `acc_partner_settle_new`(`id`, `created`, `updated`) VALUES (removeId, intoCreated, intoUpdated);# 删除旧值DELETE FROM acc_partner_settle_copy1 WHERE id = removeId;# =================================== 代码END LOOP;# 关闭游标CLOSE cur;END;# 数据条目数已经不足一个批次了, 修改条件, 跳出循环IF tmpCnt < 3000 THENSET cnt = 99999999;END IF;# 重置游标标志set done = 0;end while;
END

Mysql while 嵌套 cursor 游标, 数据迁移相关推荐

  1. mysql升级后将旧数据迁移到新 数据库中

    mysql升级后将旧数据迁移到新 数据库中 1.将原来数据库进行导出成.sql文件 例:StudentSql.sql 2.进入新数据库的bin目录下 复制bin目录 3.cmd进入bin目录下(需管理 ...

  2. MySQL复制data目录进行数据迁移(Win环境)

    https://blog.csdn.net/weixin_43125433/article/details/120212075 MySQL复制data目录进行数据迁移(Win环境) 我的环境 Wind ...

  3. mysql 导入tsv文件_HBase数据迁移(2)- 使用bulk load 工具从TSV文件中导入数据

    英文原文摘自:<HBase Administration Cookbook>??编译:ImportNew?-?陈晨 本篇文章是对数据合并的系列文章之二(共三篇),针对的情景模式就是将现有的 ...

  4. MySQL - mysqldump多种方式实现数据迁移

    一行命令 mysqldump -h172.168.15.222 -P3406 -uroot -p123456 -C --databases artisan |mysql -h172.168.15.22 ...

  5. 远程登录另一个mysql 数据库_Ubuntu中开启MySQL远程访问功能,并将另一个数据库服务器中的数据迁移到新的服务器中...

    技术交流群:233513714 一.开启MyS远程访问功能 1.进入服务器输入netstat -an | grep 3306确认3306是否对外开放,MySQL默认状态下是不对外开放访问功能的.输入以 ...

  6. datax oracle mysql_从 MySQL 到 Lindorm时序引擎 的数据迁移

    背景 本文主要介绍如何使用阿里巴巴的开源工具Datax 实现从 MySQL 到 时序引擎 的数据迁移. DataX相关使用介绍请参阅 DataX 的 下面将首先介绍 DataX 工具本身,以及本次迁移 ...

  7. Ubuntu中开启MySQL远程访问功能,并将另一个数据库服务器中的数据迁移到新的服务器中...

    技术交流群:233513714 一.开启MyS远程访问功能 1.进入服务器输入netstat -an | grep 3306确认3306是否对外开放,MySQL默认状态下是不对外开放访问功能的.输入以 ...

  8. 大数据迁移——Python+MySQL

    大数据迁移--Python+MySQL 引言 方法一:数据库复制 --最糟糕 方法二:数据库转存--最蜗牛 方法三:数据库备份--最尬速 方法四:内存操作Python+MySQL--最火箭 引言 最近 ...

  9. 数据备份数据迁移方案

    数据备份方式 物理备份 冷备:cp.tar.- 逻辑备份 mysqldump //备份 mysql //恢复 物理备份及恢复 备份 ] cp -r /var/lib/mysql 目录/mysql.ba ...

最新文章

  1. Python 三十大实践、建议和技巧
  2. 张一鸣:10年面试2000人,我发现混的好的人,全都有同一个特质!
  3. [转载]中国工商银行软件开发部门职业发展
  4. 解決BufferedReader读取UTF-8文件中文乱码(转)
  5. 计算机网络实验3:网络设备基本配置
  6. synchronized同步方法
  7. 叮叮叮~~~~网络面试题(一)来了☺
  8. mvc 调用其他控制器方法session丢失_Java从入门到放弃;MVC 模式
  9. 如何用maven tycho构建自己的Eclipse RCP应用
  10. PR软件怎么去视频噪声
  11. 盘点澳洲留学性价比较高城市
  12. OkHttp系列——使用教程
  13. VB.net 播放 WAV音乐
  14. 文档翻译——免费版(word格式、pdf格式)
  15. 域名解析到服务器ip,域名解析到服务器ip上无法访问的原因汇总
  16. Chrome开发者工具,如何清除Cookies
  17. 以Crotex M3为例讲解stm32芯片内部原理
  18. 三代UHS超高速SD卡
  19. LeetCode 题解随笔:贪心算法
  20. 浅谈Uber与滴滴快的提供差异化服务带来的商业模式思考

热门文章

  1. 结构体在多线程中用法
  2. Could not find com.android.tools.build:gradle
  3. Android Studio Gradle优化方法
  4. 后台管理系统怎么实现操作日志原理_springboot角色权限后台管理系统脚手架实战开发教程包含完整源码...
  5. mysql更新记录删除_mysql 插入-更新-删除
  6. 服务器 kvm 进入系统,服务器CAT5 KVM切换器系统
  7. java去掉rn,React Native删除第三方开源组件的依赖包
  8. linux看php安装路径,linux下查找php安装路径的方法是什么
  9. xp系统的无线配置服务器,xp系统下使用无线提示无线自动配置服务没有运行如何解决...
  10. Java8-Stream 概括