web-dev-qa-db-ja.com

コマンドラインからMySQLダンプを上書きしてインポートする方法

私はたくさんググって、それについて何も見つけることができません!

[root@someday backups]# mysql -u username_1 -p db_1 < tables_to_import/tables.sql 
ERROR 1050 (42S01) at line 19: Table 'ps_customer' already exists

mysql -f 同じです。私は単にその.sqlをインポートしてそのテーブルを書き直したいのですが、誰かが私を助けてくれますか?

pSデータベースをエクスポートするときに、オプション "DROP TABLE"を選択できることはわかっていますが、バックアップがある場合、この宣言はありません。どうすれば強制できますか?ありがとう

14
CalfCrusher

Mysqldumpを実行する場合、-add-drop-tableを追加します(twihoXと同様)。次に、通常どおりにインポートします。だから次のようなもの:

mysqldump --add-drop-table -u user -p > dumpfile.sql

mysql -u user -p < dumpfile.sql 
33
DrewB

データベース全体を上書きしようとしていますか?その場合は、すべてのテーブルを手動で削除してから、インポートスクリプトを実行します。これはphpmyadminで簡単に実行できます。 CLIを使用している場合、最も速い方法はDROP DATABASE databasenameを使用してからcreate databaseを使用することですが、非rootユーザーに特権を再付与する必要があると思います。

別のオプションは、ダンプファイルを開いて、各CREATE TABLEコマンドの前にDROP TABLE tablenameを追加することです。あなたはおそらくこれをいくつかの賢い正規表現で簡単に行うことができます。

6
octern

--add-drop-tableオプションをお勧めします。

2
twihoX