博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL:按前缀批量删除表格
阅读量:4361 次
发布时间:2019-06-07

本文共 1370 字,大约阅读时间需要 4 分钟。

想要实现mysql>drop table like "prefix_%"

没有直接可用的命令,不过可以通过mysql语法来组装,

SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' ) AS statement FROM information_schema.tables WHERE table_schema = 'database_name' AND table_name LIKE 'myprefix_%';

然后执行该组装后的命令,比如从slowquery表中删除掉所有tmp_开头的表:

SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' ) AS statement FROM information_schema.tables WHERE table_schema = 'slowquery' AND table_name LIKE 'tmp_%';

输出结果:

drop table tmp_201301,tmp_201302,tmp_201351,tmp_201352;

执行之即可。

 

我自己现实中的例子:

/*自动生成删除动态表SQL语句用法:拷贝到查询分析器中执行,把结果拷贝出来再执行就OK了。*/SELECT REPLACE(GROUP_CONCAT(a.dropSql),',','') AS dropSqlFROM(SELECT CONCAT( 'drop table ', table_name, ';' ) AS dropSqlFROM information_schema.tables WHERE table_name LIKE 'slavetablemgr%'UNIONSELECT CONCAT( 'drop table ', table_name, ';' ) AS dropSqlFROM information_schema.tables WHERE table_name LIKE 'DevicePlugin_%'UNIONSELECT CONCAT( 'drop table ', table_name, ';' )  AS dropSqlFROM information_schema.tables WHERE table_name LIKE 'historyrecordhour%'UNIONSELECT CONCAT( 'drop table ', table_name, ';' )  AS dropSqlFROM information_schema.tables WHERE table_name LIKE 'historyrecordminute%'UNIONSELECT CONCAT( 'drop table ', table_name, ';' )  AS dropSqlFROM information_schema.tables WHERE table_name LIKE 'historyrecordsecond%') a;

 

转载于:https://www.cnblogs.com/zjoch/p/4431221.html

你可能感兴趣的文章
HashMap实现原理分析
查看>>
第一冲刺阶段工作总结02
查看>>
Python操作Redis(转)
查看>>
Xshell 基本使用方式 (1) -- 使用Xshell 连接 VMware下的linux系统
查看>>
[BZOJ1726][Usaco2006 Nov]Roadblocks第二短路
查看>>
Bundle Identifier
查看>>
node--更新数据库问题
查看>>
《JavaScript权威指南》学习笔记 第二天 下好一盘大棋
查看>>
PHP 进程详解
查看>>
51nod 1278 相离的圆
查看>>
程序媛,坚持这几个好习惯让你越来越美
查看>>
如何在本地运行查看github上的开源项目
查看>>
类成员函数模板特化
查看>>
十个利用矩阵乘法解决的经典题目
查看>>
sublime text3
查看>>
WPF 反编译后错误处理
查看>>
varnish基础
查看>>
3.3-3.9 周记
查看>>
博客换肤
查看>>
HDU 5025Saving Tang Monk BFS + 二进制枚举状态
查看>>