1.在工作会遇到这种情况,mysql数据库,系统涉及到备份多表数据,为了方便,用存储过程来实现此功能,同时也复习一下存储过程的写法,同时记录下方便以后扩展修改

2.存储过程代码如下

-- 创建存储过程

CREATE PROCEDURE test_01()

BEGIN

-- 定义变量

DECLARE s int DEFAULT 0;

DECLARE monitorTable varchar(255);

DECLARE countTable varchar(256);

DECLARE countTableNew varchar(256);

-- 定义游标,并将sql结果集赋值到游标中

DECLARE report CURSOR FOR select DISTINCT monitor_table,count_table from t_monitorinfo ;

-- 声明当游标遍历完后将标志变量置成某个值

DECLARE CONTINUE HANDLER FOR NOT FOUND SET s=1;

-- 打开游标

open report;

-- 将游标中的值赋值给变量,注意:变量名不要和返回的列名同名,变量顺序要和sql结果列的顺序一致

fetch report into monitorTable,countTable;

-- 当s不等于1,也就是未遍历完时,会一直循环

while s<>1 do

-- 执行业务逻辑

set countTableNew = concat(countTable,'_bak');

-- 表名是参数的语法

SET @STMT =CONCAT("CREATE TABLE ",countTableNew," LIKE ",countTable,";");

PREPARE STMT FROM @STMT;

EXECUTE STMT;

SET @STMT2 =CONCAT("INSERT INTO ",countTableNew," SELECT * FROM ",countTable,";");

PREPARE STMT2 FROM @STMT2;

EXECUTE STMT2;

-- 表名非参数的语法

-- update patrolreporthistory set reportUrl = CONCAT('patrolReport.html?monitorId=',substring(report_url,15,1),'&reportId=',report_id) where reportId=report_id;

-- 将游标中的值再赋值给变量,供下次循环使用

fetch report into monitorTable,countTable;

-- 当s等于1时表明遍历以完成,退出循环

end while;

-- 关闭游标

close report;

END;

mysql 备份大表 存储过程_mysql批量备份表的存储过程写法相关推荐

  1. mysql批量修改学号位数_mysql批量修改表前缀

    如何快速批量修改文件名我们有时候在网页上,下载了好多自己喜欢的图片,一个个修改太麻烦了,想要快速 批量的修改文件名,其实,在你的 Windows 电脑上批量修改文件名...... 如何在 WPS 表格 ...

  2. mysql备份到带库_MySQL数据备份

    MySQL数据备份 一. MySQL数据损坏类型 1.1.物理损坏 磁盘损坏: 硬件,磁道坏,dd,格式化 文件损坏: 数据文件损坏,redo损坏 1.2.逻辑损坏 drop delete trunc ...

  3. mysql 备份多个数据库_mysql——数据库备份——使用mysqldump命令备份一个或者多个数据库...

    mysqldump命令备份一个或者多个数据库: 语法格式:mysqldump -u username -ppassword --databases dbname1 dbname2-- > bac ...

  4. mysql备份恢复文档_mysql数据库备份、恢复文档

    说明: 为了加强线上数据库安全,避免研发人员误操作造成数据的丢失,制作本文档.一线运维人员可以参考! 一.数据备份: 专用数据库备份服务器,定时对数据库进行热备.冷备,即主从设置.mysqldump冷 ...

  5. mysql 创建表字段长度范围_Mysql的建表规范与注意事项

    一. 表设计规范 库名.表名.字段名必须使用小写字母,"_"分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用Inno ...

  6. mysql pdo 插入没效果_MySQL分库分表后用PHP如何来完美操作

    当单表达到几千万时,查询一次要很久,如果有联合查询,有可能会死在那 分库分表主要就是解决这个问题,减小数据库的负担,缩短查询时间分库 1)按功能分 用户类库.商品类库.订单类库.日志类.统计类库... ...

  7. mysql myisam转innodb_Mysql MyISAM数据库批量转换表引擎为Innodb

    Mysql MyISAM数据库批量转换表引擎为Innodb 最近在做事物处理需要把表结构都改为带有支持事物的Innodb引擎格式, 把里面数据库 用户名.密码 等信息修改为你自己的,放在网站下运行即可 ...

  8. mysql 临时表增加主键_MySQL之重建表

    //MySQL之重建表// 在MySQL中,如果我们对大表频繁进行insert和delete操作,那么时间一长,这个表中会出现很多"空洞",也就是表碎片. 碎片产生的原因是inse ...

  9. mysql innodb表损坏_MySQL数据库INNODB表损坏修复处理过程分享

    ##状况描述 突然收到MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了.innodb表损坏不能通过repair table 等修复myisam的命令操作.现在记录下解决 ...

最新文章

  1. Asp.net的Session和Cookie传值方式
  2. vue填坑指南之模板的使用
  3. d3.js--04(enter和exit)
  4. AndroidLinker与SO加壳技术之下篇
  5. kubelet启动失败_《蹲坑学kubernetes》之10-1:kubelet原理详解
  6. pthread vs openMP之我见
  7. C++快速排序(二)
  8. FlashBuilder 4.5 安装图解
  9. Linux文件夹打包发送到本地
  10. HDU2076 夹角有多大【水题】
  11. bzoj 1058: [ZJOI2007]报表统计(set+multiset)
  12. 锂电池荷电状态预测方法
  13. C语言关系运算和逻辑运算
  14. app抓包工具_安卓APP逆向入门分析——破解某APP登陆请求参数
  15. [spfa][数论]JZOJ 4722 跳楼机
  16. 跟踪状态(TASK_TRACED)
  17. Win10系统截图新工具的快捷键
  18. 秀米怎么添加pdf附件「教程」
  19. TCP协议(Transmission Control Protocol)
  20. 不知道怎样做自媒体视频剪辑?分享几个必备素材网站

热门文章

  1. js根据月数计算有效日期_你真的看懂产品生产日期了么
  2. asarray java,Java
  3. (pwn) C语言 write函数且使用write函数泄露 libc版本
  4. 5道python基础中while循环练习题
  5. Python命令行运行文件的实例方法
  6. python 中五种常用的数据类型
  7. python嵌套列表知多少
  8. python学习-之汉诺塔实现
  9. resoult在python啥意思,python - __lt__而不是__cmp__
  10. linux没有mysql.server,[linux]centos7下解决yum install mysql-server没有可用包