CREATE PROCEDURE `sp_delete_pushmsg_data`()
BEGIN
declare l_delete_date varchar(16);
declare l_state_date varchar(16);
declare l_dutyno int;
declare l_row_cnt int DEFAULT 0;
declare rn int default 0;
declare i int default 0;
set l_dutyno=101;
set l_delete_date=date_format(DATE_ADD(now(),INTERVAL -30 day),'%Y-%m-%d'); /*删除90天之前的*/
set l_state_date=date_format(now(),'%Y%m%d'); set i=0; /*
set @strsql01 = CONCAT('delete from db_pushmsg.app_message_',i,' where create_time <= ''2018-06-24 00:00:00'' and message_type not in (1,2,3,4,5,6,7,8,9, 4096, 4097, 4098, 24576, 24577,24578, 28672, 28673, 36865, 4353, 4354) limit 1000');
select @strsql01; */ while i<=10 DO
insert into tb_stat_duty_log(dutydate,dutyno,status,remark) values(l_state_date,l_dutyno,0,concat('开始清理',i));
label:
WHILE (1 = 1)
DO
set @strsql01 = CONCAT('delete from db_test.tb_test',i,' where create_time <= ''2018-06-24 00:00:00'' and message_type not in (1,2,3,4,5,6,7,8,9, 4096, 4097, 4098, 24576, 24577,24578, 28672, 28673, 36865, 4353, 4354) limit 1000');
/*select @strsql01;*/
PREPARE stmt01 FROM @strsql01;
execute stmt01;
SET @aa = ROW_COUNT();
select @aa;
IF @aa = 0 THEN
LEAVE label;
END IF;
deallocate prepare stmt01;
END WHILE;
deallocate prepare stmt01;
set i = i +1; insert into tb_stat_duty_log(dutydate,dutyno,status,remark) values(l_state_date,l_dutyno,0,concat('结束清理',i)); end while; END

mysql动态执行sql批量删除数据的更多相关文章

  1. Mysql Workbench 执行sql语句删除数据时提示error code 1175

    error code 1175是因为有安全模式限制 执行命令SET SQL_SAFE_UPDATES = 0;之后可以进行操作

  2. MYSQL动态查询拼接的表名的SQL脚本实现(MYSQL动态执行SQL脚本)

    可以使用MYSQL的预处理逻辑:https://dev.mysql.com/doc/refman/8.0/en/sql-syntax-prepared-statements.html   例如: pr ...

  3. MySQL(动态执行SQL)

    day61 防sql注入 delimiter \\ CREATE PROCEDURE p4 ( ), in arg int ) BEGIN set @xo = arg; PREPARE xxx FRO ...

  4. SQL 批量删除数据表

    ) while(exists(select * from sysobjects where name like '表名前缀%')) begin select @name=name from sysob ...

  5. 第二百八十七节,MySQL数据库-条件语句、循环语句、动态执行SQL语句

    MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGIN ; THEN ; ELSEIF ...

  6. EntityFramework:支持同一事务提交的批量删除数据实现思路

    一切从一段代码说起... 下面一段代码是最近我在对一EF项目进行重构时发现的. protected override void DoRemove(T entity) { this.dbContext. ...

  7. MySQL命令执行sql文件的两种方法

    MySQL命令执行sql文件的两种方法 摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库.表以及数据等各种操作.下面笔者讲解MySQL执行sql文件命令的两种方法,希 ...

  8. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除)

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除) ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   ...

  9. SQL批量更新数据

    SQL批量更新数据 step1:导入Excel数据, 具体见百度.注意点:一列中含有float型数据和文本数据的时候,导入要将Excel中的表格属性改成文本,或在数字项目前加个单引号.   step2 ...

随机推荐

  1. linux下nginx+svn

    http://fengqi.me/unix/23.html 因为没有什么可以定制的, 所以svn直接使用系统自带的包管理软件安装, 以centos系列为例, 命令如下: yum install sub ...

  2. postgresql 删除旧的版本9.5 并同时 升级到9.6

    sudo apt-get purge postgresql-9.5 On Ubuntu 14.04 I have done this to get the latest postgres: sudo ...

  3. [WebGL入门]十二,模型数据和顶点属性

    注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:].另外.鄙人webgl研究还不够深入,一些专业词语.假设翻译有误.欢迎大家指 ...

  4. eclipse 自己主动为getter和setter加入中文凝视

    在我们使用eclipse进行开发的时候经常会使用到eclipse自己主动生成getter和setter的功能,然后大多情况下eclipse为我们生成的getter和setter都是无法在项目中使用的. ...

  5. HDU 5858Hard problem

    Hard problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  6. 深入理解7816(2)---关于ATR【转】

    本文转载自:http://blog.sina.com.cn/s/blog_4df8400a0102vcrk.html 深入理解7816(2)---关于ATR 智能卡(此处主要指接触式CPU卡)本身始终 ...

  7. openStack logo

  8. Scala快速统计文件中特定单词,字符的个数

    val fileContent=Source.fromFile("/home/soyo/桌面/ss5.txt").getLines.mkString(",") ...

  9. linux下打开windows txt文件中文乱码问题 (转载)

    转自:http://blog.csdn.net/imyang2007/article/details/7448177 在linux操作系统下,我们有时打开在windows下的txt文件,发现在wind ...

  10. PCB MS SQL 存储过程(CLR) 实现Json转DataTable表的方法

    一.准备需转为DataTable的json字符串 原json字符串数据 [{"TechName":"ECN","TechNo":" ...