2011-01-11 15 views
4

名前が異なる多くのデータベースがあります。 複数のデータベースを削除したいのですが、dbの名前がす​​べて異なるので、コマンドはありますか?mysqlコマンドを使用して複数のデータベースを削除する

例:mysql db、Test db、live db。

+0

複数のデータベースを1つのステートメントにドロップするコマンドはありません。あなたは、テキストファイルにデータベースのリストを配置し、適切なステートメントを生成するために賢明な正規表現の検索と置換を実行することができます。 – tdammers

答えて

3

あなた自身の関数を作成しない限り、残念なことに、そのようなことはありません。

2

シェルスクリプトを作成すると、すべてのデータベースが削除されます。必要に応じて編集する必要があります。

DBUSER='user' 
DBPASS='password' 
SQLFILE='/path/to/file/databases.sql' 

echo '* Dropping ALL databases' 

DBS="$(mysql -u$DBUSER -p$DBPASS -Bse 'show databases' | grep -v Database | grep -v database | grep -v mysql | grep -v information_schema)" 

for db in $DBS; do 
    echo "Deleting $db" 
    mysql -u$DBUSER -p$DBPASS -Bse "drop database $db; select sleep(0.1);" 
done 
1

私の知る限り、複数のデータベースを削除するコマンド/クエリはありませんが、名前に特定のパターンはありません。でも私は何度か好意を持って頼まれました。だから私は研究し、具体的な解決策を見つけました。それから私は以下のハックを試みました。それは多くの問題を与えることなく働いた。あなたにも役立つかもしれません。

以下のコマンドを使用してすべてのデータベースを取得します。

SHOW DATABASES ; 

エクセル/他のいくつかのテキストファイル(私はNPPを好む)でそれらのすべてを貼り付けます。リストから削除する唯一の名前を残しておきます。仕事のデータベースをリストから削除するのを忘れないでください。

これらの名前の前にDROP DATABASEを追加します。

これは簡単です。コピー&あなたのワークベンチにすべてのものを貼り付けます。それらのすべてをワンショットで実行できます。

関連する問題