zoukankan      html  css  js  c++  java
  • 【MySQL】 empty table and delete table.

    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 ();
    复制代码
  • 相关阅读:
    linux ps查看进程命令
    linux distribution是什么?
    samba配置smb.conf
    linux samba.tar.gz安装和配置
    linux后台执行命令&
    linux crontab任务调度的使用
    linux ubuntu卸载软件
    vue-router
    vue computed
    vue 监听的使用
  • 原文地址:https://www.cnblogs.com/flydkPocketMagic/p/5998515.html
Copyright © 2011-2022 走看看