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. .net Global.asax文件使用

    一.Application_start: 第一个访问网站的用户会触发该方法. 通常会在该方法里定义一些系统变量,如聊天室的在线总人数统计,历史访问人数统计的初始化等等均可在这里定义. Applicat ...

  2. windows下的NodeJS安装

    1.登录官网 http://nodejs.org ,install 下载安装包.. 2.安装过程基本直接“NEXT”就可以了. 3.安装完成后可以使用cmd(win+r然后输入cmd进入)测试下是否安 ...

  3. jetty 9 嵌入式开发示例

    jetty 9 嵌入应用程序后,小型的web应用直接打成一个单独的jar包,就可以直接运行,非常适合做Demo演示或云端集群部署. 主要代码: JettyServer的封装类 package yjmy ...

  4. C#进阶系列——DDD领域驱动设计初探(三):仓储Repository(下)

    前言:上篇介绍了下仓储的代码架构示例以及简单分析了仓储了使用优势.本章还是继续来完善下仓储的设计.上章说了,仓储的最主要作用的分离领域层和具体的技术架构,使得领域层更加专注领域逻辑.那么涉及到具体的实 ...

  5. 【Python】[面向对象高级编程] 多成继承,定制类,使用枚举

    1.多成继承 class SmallDog(Animal,Dog) pass MixIn就是一种常见的设计. 2.定制类类似__slots__这种形如 __xxx__ 的变量或者函数名,在python ...

  6. Ubuntu 14 設定 遠端連線,讓別台電腦可以連線進來

    Ubuntu 14 需 disable 加密,方可 遠端連線 此台電腦 xxx@xxx-ThinkPad-T460p:~$ gsettings set org.gnome.Vino require-e ...

  7. 滑动控件-FlipView

    <Grid>            <FlipView>                <FlipView.Items>                    &l ...

  8. 团队博客作业- Week3

    成员介绍 韩青长  测试 我是韩青长,技术小白,抱着对软工的好奇和对未来工作的憧憬选了这门课.暂时选择了测试的工作,也对开发和UI有一定兴趣.从前上帝创造了我们,现在轮到我们来创造自己的软件了~ 陈彦 ...

  9. hdu2929 Bigger Is Better

    题意 给出n根木棍,要你拼一个最大的数,并且这个数是m的倍数. 题解 显然越长的数越大.设\(dp[i][j]\)表示用i根木棍并且\(mod m = j\)的最大长度. 我们很容易想出dp方程,再用 ...

  10. elk系列5之syslog的模块使用

    preface rsyslog是CentOs系统自带的的一个日志工具,那么我们就配置logstash来接受rsyslog的日志. logstash的syslog模块 linux-node2上操作 lo ...