データベースに 100 個のテーブルがあり、1 つだけ保持したい。
以下のクエリのようなものを試しました:
DROP ALL TABLES EXCEPT my_table
しかし、それは存在しないようです。何か案が?
データベースに 100 個のテーブルがあり、1 つだけ保持したい。
以下のクエリのようなものを試しました:
DROP ALL TABLES EXCEPT my_table
しかし、それは存在しないようです。何か案が?
MySQL で複数のテーブルを削除することはできません。
あなたのケースで最も簡単なのは、保持したいテーブルをエクスポートし(のようなツールを使用してmysqldump
)、データベースを削除して再作成することです。
多数のテーブルがある場合は、GROUP_CONCAT 関数による切り捨てに注意してください。返される文字列の最大長の設定があります: group_concat_max_len
参照: GROUP_CONCAT リファレンス マニュアル エントリ
この回答は、解決策に私を導きました: MYSQL: LONG 文字列変数を定義または取得する方法
使えますmysqldump
、試してみてください!
mysqldump -u[USERNAME] -p[PASSWORD]--add-drop-table --no-data [DATABASE] |
grep ^DROP |
grep -v 'my_table' |
mysql -u[USERNAME] -p[PASSWORD] [DATABASE]