1. ホーム
  2. mysql

[解決済み] SQL: 接頭辞付きのテーブルを削除する

2022-09-14 09:32:34

質問

プレフィックスを持つテーブルを削除するには? myprefix_ ?

注意:phpMyAdminで実行する必要があります。

どのように解決するのですか?

単一の MySQL コマンドだけではできませんが、MySQL を使用してステートメントを構築することができます。

MySQL シェルまたは PHPMyAdmin で、次のクエリを使用します。

SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' ) 
    AS statement FROM information_schema.tables 
    WHERE table_name LIKE 'myprefix_%';

これでDROP文が生成されるので、これをコピーして実行すれば、テーブルを削除することができます。

EDIT: 免責事項 - 上記で生成されたステートメントは、その接頭辞を持つすべてのデータベースのすべてのテーブルを削除します。特定のデータベースに限定したい場合は、以下のようにクエリを変更し、database_name を独自の database_name に置き換えてください。

SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' ) 
    AS statement FROM information_schema.tables 
    WHERE table_schema = 'database_name' AND table_name LIKE 'myprefix_%';