MYSQL 批量删除以特定前缀开头的表
前言
这是工作中确实会用到,比如分库分表后有t_order_01、t_order_02、t_order_03...t_order_08 这样的表。
测试过程中造了大量数据进行测试,其中可能含有部分脏数据,因此下一轮测试时最好把整个模块的数据进行删除。
三月,你好。
实现SQL
采用了存储过程来实现,可遍历删除这些特定前缀的表。
SQL如下:
## 存储过程实现
drop PROCEDURE if EXISTS rush;
create PROCEDURE rush()
BEGIN
## 创建临时表,插入快照数据
drop table if exists drop_tb;
create TEMPORARY table drop_tb(
rowNum int not null,
table_name VARCHAR(50) not null
);
insert into drop_tb
select @r := @r + 1 as rowNum,
table_name
from information_schema.TABLES as a,(select @r := 0 )as t
where table_schema = (select DATABASE())
and table_name like 'aopi_copy%'
order by a.table_name ;
## 变量设置
set @index = 0;
set @count = (select count(0) from drop_tb) ;
## 遍历删除前缀为 aopi_copy 的表
WHILE @index < @count DO
set @index = @index + 1 ;
set @tb_name = (
select table_name from drop_tb as ibn
where ibn.rowNum = @index
) ;
set @drop_sql_tax = concat('drop table if exists ',@tb_name);
PREPARE distSQL FROM @drop_sql_tax ;
EXECUTE distSQL;
DEALLOCATE PREPARE distSQL ;
END WHILE;
drop table drop_tb;
end ;
call rush();
drop PROCEDURE if exists rush;
## THE END
验证流程
准备特定前缀八张表:

全选上述SQL并执行:

刷新表发现以aopi_copy 开头的表全部被删了。
当然这是drop table,你可以改成delete table,这样就只会删数据不会把表也删掉了,所以具体还是看情况吧!
MYSQL 批量删除以特定前缀开头的表的更多相关文章
- mysql进阶(十五) mysql批量删除大量数据
mysql批量删除大量数据 假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条, 直接执行 DELETE FROM s ...
- mysql批量删除指定前缀或后缀表
今天突然发现我们数据库中多出很多表,后缀名为"copy",预计是navicat直接拷贝导致的,然后要对这些有同样后缀名的表进行删除,假设一个一个选择会非常麻烦,表计较多,在网上找了 ...
- MYSQL存储过程,清除指前缀的定表名的数据
MYSQL存储过程,清除指前缀的定表名的数据 DELIMITER $$ DROP PROCEDURE IF EXISTS `drop_table`$$ ),)) BEGIN ) DEFAULT NUL ...
- MySQL 批量删除相同前缀的表
sql 命令批量生成drop命令 需要批量删除表,而MySQL又没有提供相关的功能:一般我们建表也都会使用相同前缀,那么,在不使用工具的情况下可以选择使用sql生成批量删除命令: 如删除以 " ...
- Mysql批量删除和修改某个前缀的表
1.批量删除某个前缀的表名,首先选出这些个表. select concat( 'drop table ', table_name, ';' ) from information_schema.tabl ...
- Reids 批量删除有相同前缀的keys
redis-cli 登录redis 我一般使用 redis-cli 登录redis ,但是进去后会提示" Redis (error) NOAUTH Authentication requir ...
- mysql 批量删除数据
批量删除2000w数据 使用delete from table太慢 //DELIMITER DROP PROCEDURE if EXISTS deleteManyTable; create PROCE ...
- SSM + MySQL批量删除操作
最近项目中有个购物车功能需要能够选中商品,然后批量删除的操作,也可以单个删除,其实代码很简单就能实现. 这里需要注意的就是你前端是怎么传值的,我这里采用的数组的形式,用 ‘,’隔开. 然后控制层代码如 ...
- mybatis(二)接口编程 、动态sql 、批量删除 、动态更新、连表查询
原理等不在赘述,这里主要通过代码展现. 在mybatis(一)基础上,新建一个dao包,并在里面编写接口,然后再在xml文件中引入接口路径,其他不变,在运用阶段将比原始方法更节约时间,因为不用再去手动 ...
- 【Oracle/Java】批量删除16张十万数据的表 单线程耗时45秒 多线程耗时38秒
昨天做了插入的单线程多线程比较,今天做个删除的. 单线程批量删除类代码: package com.hy.delete.singlethread; import java.sql.Connection; ...
随机推荐
- 对于围棋AI作弊的一些思考
最近看到些关于围棋AI作弊的报道有了一些思考. 相关视频链接: https://www.bilibili.com/video/BV1np411f73b/?spm_id_from=autoNext ht ...
- Ubuntu18.04安装终端文件管理器ranger
linux环境下终端的文件管理器ranger的安装: github下载地址: https://github.com/ranger/ranger 安装: pip install ranger-fm 启动 ...
- vue 识别\n \t 等字符(转载)
使用.text(str)时,str中有"\n",但是页面显示却没有换行,需要在所在的 div添加属性 style="white-space: pre-line" ...
- Wetab新标签页:内置实用小组件的浏览器扩展,重新定义浏览器主页
除了社交媒体,浏览器可能是我们日常工作.学习和生活中最常用的平台之一.然而,在使用浏览器的过程中,我们经常被书签管理.标签管理等问题所困扰.例如,书签栏混乱不堪,无法快速查找到所需书签. 为了和浏览器 ...
- Layui Upload 多文件上传访问多次接口问题解决
Layui 多文件上传访问多次接口 点我访问 LayUI框架官网 话不多数直接看源码 文件地址: layui/modules/upload.js // 通过each循环文件列表 layui.each( ...
- 你要了解的2种AI思维链
我们使用的AI助手,一般是经过了预训练和微调这2个步骤,尽管训练出的模型能回答许多通用类问题,但是在遇到复杂问题时还是束手无策. 直到有人提出了思维链方式,才解决了模型在面对复杂问题时的推理能力. 1 ...
- Adobe Photoshop cc2022 Mac中文破解版下载安装
PS2024 for Mac,我这个版本是Mac版25.2,大小4.03G,支持intel/M1/M2/M3芯片,最低系统需求:13.4以上,不限速下载地址还是放在最后. 然后安装总共有三个步骤,尤其 ...
- 查看 Linux 系统信息
查看系统信息 查看发行版信息 cat /etc/os-release lsb_release -a 查看公网 IP 地址 curl -4 icanhazip.com 查看系统架构 uname -m # ...
- C#自定义控件—流动管道
C#用户控件之流动管道 如何绘制一个动态的流动管道(FlowPipe)? 分两步绘制 定义属性: 画布重绘: 主要技能: 管道的绘制(渐变色矩形) /// <summary> /// 画渐 ...
- HashMap深入讲解
HashMap是Java中最常用的集合类框架,也是Java语言中非常典型的数据结构, 而HashSet和HashMap者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说HashSet ...