-- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表。

DELIMITER $$

USE `dbx`$$

DROP PROCEDURE IF EXISTS `pro_xx`$$

CREATE  PROCEDURE `pro_xx`()

BEGIN

DECLARE p_oalid INT DEFAULT 0;

DECLARE STOP INT DEFAULT 0;

DECLARE cur_oalid CURSOR FOR

SELECToal.id FROM oal_xxx oal WHERE oal.`ymd`

DECLARE EXIT HANDLER FOR SQLSTATE '02000'  /**包含游标not found*/

BEGIN

SET STOP=1;

INSERTINTO db_logs(log_type,table_name,action_name,log_msg,create_time)

SELECT1, 'oal_xxx','pro_oal_log_move',CONCAT('primary key:',p_oalid,' 游标执行正常结束!'),NOW();

END;

DECLARE EXIT HANDLER FOR SQLEXCEPTION

BEGIN

SETSTOP=1;

INSERTINTO db_logs(log_type,table_name,action_name,log_msg,create_time)

SELECT2, 'oal_xxx','pro_oal_log_move',CONCAT('primary key:',p_oalid,' 移动执行失败'),NOW();

END;

OPEN cur_oalid;

-- 读取一行数据到变量

FETCH cur_oalid INTO p_oalid;

-- 这个就是判断是否游标已经到达了最后

WHILE STOP <> 1 DO

-- select p_id;

START TRANSACTION;

--   进行数据迁移

REPLACE INTO oal_xxx_history SELECT oal.*FROM oal_xxx oal WHERE oal.id=p_oalid ;

DELETE FROM oal_xxx WHERE id=p_oalid;

-- INSERT INTO t (tid) VALUES (p_tid);

COMMIT;

-- 读取下一行的数据

FETCH cur_oalid INTO p_oalid;

END WHILE;

CLOSE cur_oalid; -- 关闭游标

END$$

DELIMITER ;

mysql存储过程表迁移for_MySQL存储过程--通过游标遍历和异常处理迁移数据到历史表 (转)...相关推荐

  1. mysql游标表间数据迁移_MySQL存储过程--通过游标遍历和异常处理迁移数据到历史表...

    -- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表.DELIMITER $$ USE `dbx`$$ DROP PROCEDURE IF EXISTS `pro_xx ...

  2. mysql游标表间数据迁移_FalseMySQL存储过程--gt;通过游标遍历和异常处理迁移数据到历史表-mysql-第二电脑网...

    -- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表.DELIMITER $$ USE `dbx`$$ 电脑技术网对<FalseMySQL存储过程-->通过 ...

  3. MySQL存储过程 -- 通过游标遍历和异常处理迁移数据到历史表

    -- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表. DELIMITER $$ USE `dbx`$$ DROP PROCEDURE IF EXISTS `pro_x ...

  4. Mysql定义DELETE操作触发器,将删除数据存入历史表

    Mysql定义DELETE操作触发器,将删除数据存入历史表 SQL如下: // An highlighted blockDELIMITER $$ CREATE TRIGGER <触发器名称> ...

  5. 迁移数据到历史表SQL

    有时工作需要需要把当前表的数据,移到历史表中,而历史表基本是以时间(年)为后缀来命名历史表的,如 A_2011,A_2012,在移数据时,要按数据的时间,移到不同的表中,且由于如果数据有同步.一次处理 ...

  6. MySql定期备份数据到历史表的解决方案

    前言 互联网项目最大不瓶颈还是在于数据库,80%的数据请求只针对20%的数据:特别是电商项目,体现的更为明显,大量的数据请求,即使MySql在一主多从,读写分离,使用了Elasticsearch.Me ...

  7. mysql定时任务,把7天的数据存到历史表,再删除7天前的数据

    查看mysql事件是否已开启,ON开,OFF关. SHOW VARIABLES LIKE 'event_scheduler'1:新建存储过程.use 数据库名; delimiter$$ #设置mysq ...

  8. SQL Server数据库表的基本操作(批量插入、删除、查询数据,删除表中重复数据方法)

    实验名称:数据库表的基本操作与表内数据操作 实验目的: 掌握数据库表创建方法(交互式.T-SQL法) 掌握修改数据库表结构的方法 掌握删除数据库表的方法 掌握交互式EXCEL文件录入数据至数据库表的方 ...

  9. mysql 将三个月的数据导到历史表_迁移数据到历史表,减少业务表中数据压力 Mysql...

    #数据迁移存储过程 DROP PROCEDURE IF EXISTS `delete_platform_patient`; DELIMITER ;; CREATE DEFINER=`root`@`%` ...

最新文章

  1. python ftp文件夹文件递归上传推送
  2. java的(PO,VO,TO,BO,DAO,POJO)解释
  3. 【Python 19】BMR计算器3.0(字符串分割与格式化输出)
  4. 700. 二叉搜索树中的搜索
  5. Web中Servlet
  6. 惠普g260鼠标宏软件_黑爵电竞鼠标AJ337 电竞手残党福音 鼠标宏一键火力全开
  7. ubuntu 上 安装php5.4
  8. 【Android】命令行jarsigner签字和解决找不到证书链错误
  9. php获得每个月第一天的时间,PHP获取指定日期所在月的第一天和最后一天几个例子...
  10. linux 查看显卡信号_Ubuntu 16.04安装nvidia显卡驱动以及各种坑(包含解决方案)
  11. 小米2s Android pie,Android 9 Pie什么时候升级?小米MIX 2S抢先体验!
  12. Android 透明颜色值ARGB
  13. C#给Winform的button等控件添加快捷键三种方法
  14. Machine Learning——Homework1
  15. 网页设计软件列表HTML,【网站设计用什么软件】网页设计软件具体有哪些,常见的十种网页设计软件介绍!...
  16. (转)几个开源的视频编解码器介绍
  17. 5款Java微服务开源框架
  18. 基于51单片机+LD3320语音模块+SYN6288语音合成——语音识别智能分类垃圾桶
  19. 构建CF卡Linux系统的几个常见难题
  20. Java 桌球小游戏

热门文章

  1. 实例化vue之前赋值html元素导致事件失效
  2. webrtp官方demo运行
  3. 注意Entity中的Uptate
  4. QT消息,事件,槽的典型用法
  5. 男人一生要做的九件事情
  6. 数据揭秘:低学历成功逆袭概率有多少?感谢父母送我读书!
  7. 开关电源之PCB安规设计规范
  8. CAN和CANOpen的关系
  9. JVM进阶之路, 不然又要被面试官吊打了
  10. 你以为熬个3年工作经验就是Java高级开发了?