以下のクエリで可能
流れ
- テーブル名を「, 」区切りで取得
- テーブル削除のクエリを作成
- 実行
-- 全てのテーブル名を取得する
SET GROUP_CONCAT_MAX_LEN=32768; -- GROUP_CONCATの長さ制限を設定
SELECT GROUP_CONCAT(table_name SEPARATOR ', ') AS tables_to_drop
FROM information_schema.tables
WHERE table_schema = 'データベース名';
-- 取得したテーブル名を使用して全てのテーブルを削除する
SET @tables_to_drop = (
SELECT GROUP_CONCAT(table_name SEPARATOR ', ')
FROM information_schema.tables
WHERE table_schema = 'データベース名'
);
SET @drop_query = CONCAT('DROP TABLE IF EXISTS ', @tables_to_drop, ';');
-- テーブルを削除するクエリを実行する
PREPARE stmt FROM @drop_query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;