6

データベースにたくさんのテーブルがありMySQL、そのうちのいくつかは phpbb_ *で始まり、すべて削除したかったのです。誰かがそうする代わりにそうする方法を知っていますか

drop table <tablename>;

毎回?正規表現のような?

drop table phpbb*

または何かのような?

4

2 に答える 2

13

次の MySQL プロシージャを使用できます。

DELIMITER $$
CREATE PROCEDURE drop_tables_like(pattern VARCHAR(255), db VARCHAR(255))
BEGIN
    SELECT @str_sql:=CONCAT('drop table ', GROUP_CONCAT(table_name))
    FROM information_schema.tables
    WHERE table_schema=db AND table_name LIKE pattern;

    PREPARE stmt from @str_sql;
    EXECUTE stmt;
    DROP prepare stmt;
END$$

DELIMITER ;

「test1」データベースの「a」で始まるすべてのテーブルを削除するには、次を実行できます。

CALL drop_tables_like('a%', 'test1');

参照: http://dev.mysql.com/doc/refman/5.5/en/drop-table.html

于 2012-10-28T15:49:48.567 に答える