忍者ブログ

エンジニア初心者の備忘録

エンジニア初心者が躓いたことハマったことを公開します!

データベースを残しつつ、テーブルを全て一括削除する~エンジニア初心者のためのMySQLコマンド~

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

データベースを残しつつ、テーブルを全て一括削除する~エンジニア初心者のためのMySQLコマンド~

今回は、データベースを残しつつ、テーブルを全て一括削除する方法について書き留めておきたいと思います。

結論から言うと、

mysql -u hoge -D hoge -p -e "show tables" -s | xargs -I "@@" mysql -u hoge -D hoge -e "drop table @@"


になります。
一部内容を確認します。

-e
スペースを含むオプション値をコマンド行で指定する場合は、引用符で囲まなければなりません。たとえば、--execute (または -e) オプションを mysql とともに使用して、SQL ステートメントをサーバーに渡すことができます。このオプションが使用されると、mysql はオプション値のステートメントを実行して終了します。ステートメントは引用符で囲む必要があります。
『MySQL 5.6 リファレンスマニュアル :: 4.2.4 コマンド行でのオプションの使』

-s

--silent, -s

サーバーとの接続が確立できない場合、警告なしで終了します。
『MySQL :: MySQL 5.6 リファレンスマニュアル :: 4.5.2 mysqladmin ...』           


xargs

$ man xargs
xargs - 標準入力からコマンドラインを作成し、それを実行する

-I
-I replace-str
xargs が実行するコマンドに対してユーザが引き数 (すなわち initial-arguments) を指定したとき、その initial-arguments 中にある replace-str の部分すべてを、標準入力から読み込んだ名前で 置き換える。 なお、空白は、クォートされていない場合も、入力される項目の区切りには ならない。区切り記号は改行文字だけになるのだ。 -x と -L 1 が自動的に設定される。
『Man page of XARGS』



なお、viewは下記を別途使用する必要があります。

mysql -u hoge -D hoge -p -e "show tables" -s | xargs -I "@@" mysql -u hoge -D hoge -e "drop view @@"


以上です!


【参考サイト】
『MySQLでテーブルを全て、または正規表現で指定して削除する方法』
『[MySQL] 全テーブルのデータを一括で削除』
『xargsコマンドで覚えておきたい使い方・組み合わせ7個(+1個)』

PR

コメント

プロフィール

HN:
プラムザ 太郎
性別:
非公開

P R