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; ...
随机推荐
- MPI4PY的数据类型 —— MPI4Py data type
原文地址: http://education.molssi.org/parallel-programming/03-distributed-examples-mpi4py/index.html MPI ...
- vue 识别\n \t 等字符(转载)
使用.text(str)时,str中有"\n",但是页面显示却没有换行,需要在所在的 div添加属性 style="white-space: pre-line" ...
- [CEOI2011] Matching 题解
前言 题目链接:洛谷. 在上一题之后,模拟赛又放了一道 KMP 重定义相等的问题,但是寄了,故再记之. 题意简述 现在给出 \(1 \sim n\) 的排列 \(p\) 和序列 \(h_1, h_2, ...
- 在IIS上部署ASP.NET Core Web API和Blazor Wasm详细教程
前言 前段时间我们完成了七天.NET 8 操作 SQLite 入门到实战的开发系列教程,有不少同学留言问如何将项目发布部署到IIS上面运行.本篇文章我们就一起来讲讲在IIS上部署ASP.NET Cor ...
- 远程采集服务器指标信息(一) 远程通过SSH执行命令
远程采集服务器信息,比如说磁盘信息.内存信息. 现介绍java通过SSH执行命令采集服务器信息,比如说执行df.ls.top. /** * * SSH远程执行shell类 */ public clas ...
- Python开发中,SQLAlchemy 的同步操作和异步操作封装,以及常规CRUD的处理。
在我们使用Python来和数据库打交道中,SQLAlchemy是一个非常不错的ORM工具,通过它我们可以很好的实现多种数据库的统一模型接入,而且它提供了非常多的特性,通过结合不同的数据库驱动,我们可以 ...
- ubuntu 安装psycopg2包
psycopg2 库是 python 用来操作 postgreSQL 数据库的第三方库. 执行:pip3 install psycopg2==2.8.4 有可能会报错: Collecting psyc ...
- Typora 上传到 Github 实现笔记同步管理
首先在 Github 上 new 一个 repository ,我建的名称是 md_notes 然后在本地 terminal 中启动以下命令新建一个 ssh key ssh-keygen -o 生成 ...
- 生产级Redis 高并发分布式锁实战2:缓存架构设计问题优化
对于大多数高并发场景,都是读多写少.比如商品信息,医生挂号信息等.提交订单页只有一个操作. 对于一个普通的缓存架构设计,实现商品的增删改查功能,代码如下: Controller 层 @RestCont ...
- 事务发件箱模式在 .NET 云原生开发中的应用(基于Aspire)
原文:Transactional Outbox in .NET Cloud Native Development via Aspire 作者:Oleksii Nikiforov 总览 这篇文章提供了使 ...