テーブルの一括削除
MySQL においてテーブルをDROP TABLE
で削除する際にはワイルドカードを用いることができません。何とかしたいですね。
grep
してパイプでつなげる
以下のようにコマンドラインから投げてやれば、db_name
に存在する複数のテーブルを削除できます。下記ではテーブル名がfugafuga_*
にマッチするものを削除しています*1。もちろんユーザ名はroot
、そのパスワードはhogehoge
ということになります。
ユーザ名やパスワード、db_name
を2回書かなければいけないのがイケてないですが、そこはまぁ頑張ってください。
$ mysql -u root -phogehoge -e 'SHOW TABLES FROM db_name' | grep fugafuga_* | xargs -I "@@" mysql -u root -phogehoge -e "DROP TABLE db_name.\`@@\`"
応用すればデータベースの一括削除も
簡単なコマンドなので応用すれば様々な一括処理ができますね。
*1:正規表現を使ったりすると思わぬ結果になることもあるので注意です