1.MySQL生成删除满足条件的表的sql:

 1 SELECT
2 CONCAT(
3 'DROP TABLE ',
4 GROUP_CONCAT(table_name),
5 ';'
6 ) AS statement
7 FROM
8 information_schema.TABLES
9 WHERE
10 table_schema = 'testmybatis'
11 AND table_name LIKE 'table_mo_%';

DROP TABLE table_mo_tt1,table_mo_tt222;执行生成的语句即可。

2.MySQL批量删除指定前缀表:

 1 SELECT
2 CONCAT(
3 'drop table ',
4 table_name,
5 ';'
6 )
7 FROM
8 information_schema. TABLES
9 WHERE
10 table_name LIKE 'table_mo_%';
 1 SELECT
2 CONCAT(
3 'ALTER TABLE ',
4 table_name,
5 'RENAME TO ',
6 table_name,
7 ';'
8 )
9 FROM
10 information_schema. TABLES
11 WHERE
12 table_name LIKE 'table_mo_%';

3.使用存储过程删除所有满足条件的表:

 1 DROP PROCEDURE drop_table;
2 DELIMITER //
3
4
5 CREATE PROCEDURE drop_table (
6 DB_NAME VARCHAR (50),
7 prefix VARCHAR (16)
8 )
9 BEGIN
10 DECLARE
11 done INT DEFAULT 0 ; #游标的标志位
12 DECLARE
13 a VARCHAR (20) ; DECLARE
14 b VARCHAR (40) ; DECLARE
15 cur1 CURSOR FOR SELECT
16 table_name
17 FROM
18 information_schema. TABLES
19 WHERE
20 table_schema = DB_NAME
21 AND table_name LIKE concat(prefix, '%') ; DECLARE
22 CONTINUE HANDLER FOR SQLSTATE '02000'
23 SET done = 1 ; OPEN cur1 ;
24 REPEAT
25 FETCH cur1 INTO a ;
26 IF NOT done THEN
27
28 SET b = concat(
29 'drop table ',
30 DB_NAME,
31 '.',
32 a
33 ) ; # 拼删除命令
34 # set b=concat('TRUNCATE from ',DB_NAME,'.',a); # 拼删除命令
35 SET @E = b ; PREPARE stmt1
36 FROM
37 @E ; EXECUTE stmt1 ; # 执行命令
38 DEALLOCATE PREPARE stmt1 ; #释放对象
39 END
40 IF ; UNTIL done
41 END
42 REPEAT
43 ; CLOSE cur1 ;
44 END ;//
45 DELIMITER ;
46 call drop_table('testmybatis', 'table_mo_');

4.使用存储过程批量清空满足条件的表

 1 CREATE PROCEDURE `up_truncate_all_table` ()
2 BEGIN
3 DECLARE
4 done INT DEFAULT 0;
5
6 DECLARE
7 tname CHAR (50);
8
9 DECLARE
10 cur1 CURSOR FOR SELECT
11 table_name
12 FROM
13 INFORMATION_SCHEMA. TABLES
14 WHERE
15 table_schema = 'db_name';
16
17 DECLARE
18 CONTINUE HANDLER FOR SQLSTATE '02000'
19 SET done = 1;
20
21 OPEN cur1;
22
23
24 REPEAT
25 FETCH cur1 INTO tname;
26
27
28 IF NOT done THEN
29
30 SET @str = concat('truncate table ', tname);
31
32 PREPARE stmt1
33 FROM
34 @str;
35
36 EXECUTE stmt1;
37
38 DEALLOCATE PREPARE stmt1;
39
40
41 END
42 IF;
43
44 UNTIL done
45 END
46 REPEAT
47 ;
48
49 CLOSE cur1;
50
51
52 END
53 CALL up_truncate_all_table ();

【MySQL】 empty table and delete table.的更多相关文章

  1. 【MySQL】DDL因Waiting for table metadata lock卡住

    在数据库空闲时间,对表做碎片整理: alter table my_abc engine=innodb; 发现会话被阻塞,显示状态是: Waiting for table metadata lock 手 ...

  2. 【MySQL】详细说下MySQL删除数据的过程是什么样的?

    drop table 这里先介绍一下[InnoDB]存储表空间概念: Innodb存储引擎,可将所有的数据库数据存放于[ibdata1]的共享表空间:也可以将每张表存放于独立的.idb文件的独立表空间 ...

  3. 【MySQL】从入门到精通8-SQL数据库编程

    上期:[MySQL]从入门到精通7-设计多对多数据库 第零章:Mac用户看这里: mac终端写MySQL和windows基本相同,除了配置环境变量和启动有些许不同以外. 先配置环境变量,在终端输入vi ...

  4. 【MySQL】从入门到掌握3-WorkBench

    上期:[MySQL]从入门到掌握2-下载安装 我们安装完MySQL Server的时候,是没有任何界面的. 不过很好,我们有一个工具,MySQL Workbench,他可以简化我们的操作,有点像Jav ...

  5. 1229【MySQL】性能优化之 Index Condition Pushdown

    转自http://blog.itpub.net/22664653/viewspace-1210844/  [MySQL]性能优化之 Index Condition Pushdown2014-07-06 ...

  6. 【MySQL】drop大表

    利用硬链接和truncate降低drop table对线上环境的影响 众所周知drop table会严重的消耗服务器IO性能,如果被drop的table容量较大,甚至会影响到线上的正常. 首先,我们看 ...

  7. 【MySQL】结构行长度的一些限制

    今天被开发提交的DDL变更再次困惑,表中字段较多,希望将已有的两个varchar(4000)字段改为varchar(20000),我想innodb对varchar的存储不就是取前768字节记录当前行空 ...

  8. 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装

      [MySQL]Linux下MySQL 5.5.5.6和5.7的RPM.二进制和源码安装 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后, ...

  9. 【mysql】autocommit=0后,commit, rollback无效

    之前在[mysql]MySQLdb中的事务处理中用autocommit和commit()以及rollback()实现了事务处理. 但后来,用同样的代码在另一个数据库中运行却失败了.找了一个下午的原因. ...

随机推荐

  1. 关于JSP---三大指令

    JSP三大指令: page    ------>最复杂的一个指令,属性很多,常用的像import,language,pageEncoding等等 include-------->静态包含, ...

  2. PHP中使用CURL请求页面,使用fiddler进行抓包

    在PHP中使用CURL访问页面: <?php $ch = curl_init('http://www.baidu.com'); curl_setopt($ch, CURLOPT_RETURNTR ...

  3. python 列表 总结

    在python里创建列表和字典非常简单,这里总结一下它们的常用方法 1.创建列表 myArry = ["one", "two", "three&quo ...

  4. 由12306动态验证码想到的ASP.NET实现动态GIF验证码(附源码)

    背景: 12306网站推出“彩色动态验证码机制”,新版验证码不但经常出现字符叠压,还不停抖动,不少人大呼“看不清”,称“那个验证码,是毕加索的抽象画么!”铁总客服则表示:为了能正常购票只能这样.而多家 ...

  5. C#基础系列——异步编程初探:async和await

    前言:前面有篇从应用层面上面介绍了下多线程的几种用法,有博友就说到了async, await等新语法.确实,没有异步的多线程是单调的.乏味的,async和await是出现在C#5.0之后,它的出现给了 ...

  6. Android studio下使用SharedSDK

      原贴出自:http://bbs.mob.com/thread-5148-1-1.html   首先新建了一个项目用来演示集成ShareSDK 下载好了ShareSDK之后,我们按照下面的步骤使用快 ...

  7. linux/ubuntu查看内核版本命令

    打开终端,输入: uname -a

  8. web框架 之 Tornado

    初识 Tornado : tornado web server 是使用python编写出来的一个轻量级.高可伸缩性和非阻塞IO的Web服务器软件,其特点是采用epoll非阻塞IO,相应快速,可处理数千 ...

  9. RabbitMQ Topic exchange

    Topic exchange topic与之前的每个类型都不同(ps:废话每个都是不同的).Topic解决了我们另一个需求.举个例子,有一个做资讯的公司,他们会收集各种科技公司的动态并且第一时间转发出 ...

  10. NodeJs + mongodb模块demo

    代码比较通俗易懂,但是我还是在这个过程中浪费了不少时间,也算是看到了nodejs中异步的一个小坑.未来的坑还有很多,慢慢找坑填坑吧. 参考资料如下: 1.断言模块 : https://nodejs.o ...