1

次のようなssh経由でダンプsqlファイルをインポートしたかった:

mysql -hlocalhost -uUSER -pPASS DATABASE < dump.sql

ただし、実際には古いデータベースを上書きして削除します。ダンプには「DROP TABLE IF EXISTS」というタグが付けられていますが、古いエントリが削除されるのはなぜですか? このダンプは、データベースに新しい (一意の) エントリを追加するはずでしたが、古いデータベース エントリを削除します。

これを回避する方法はありますか?

ありがとう。

4

2 に答える 2

0

MySQLDumpに渡すことができるさまざまなオプションがあり、スクリプトに必要なものだけが含まれるようにします(たとえば、create tableステートメントを省略し、データを挿入するだけです):http ://dev.mysql.com/doc/refman/5.1/en/ mysqldump.html

特に--no-create-infoと--no-create-dbに興味があると思います。

すでに持っているダンプを操作する必要がある場合は、問題のある「DROPTABLE」行を手動で削除してください。

于 2013-02-20T23:15:21.573 に答える
0

ダンプには「DROP TABLE IF EXISTS」というタグが付けられていますが、古いエントリが削除されるのはなぜですか?

それがまさにそれDROP TABLE IF EXISTSです。テーブルが存在する場合は、その中のすべての行と一緒にドロップ (削除) されます。

ダンプを作成するときに、--skip-add-drop-tableオプションを追加できます。

于 2013-02-21T00:36:03.067 に答える