Mysqldumpを使用してダンプを取得しました。
mysqldump -u... -p... mydb t1 > mydb_table.sql
次に、同じテーブルを持つがレコードが異なる別のデータベースにダンプをインポートしました。
mysql -u...-p... mydb < mydb_tables.sql
インポートデータベースには、primary_key 1から1000までのレコードがあり、エクスポートデータベースには、5000〜10,000のレコードがありました。
しかし、インポート時に既存のレコード、つまり1〜1000が削除されました。
方法??理由??これがデフォルトの動作である場合、次回ダンプを発生させないためにダンプにどのようなオプションを与えることができるか。
Mysqldumpは、デフォルトでテーブルを削除します。次のように--no-create-info
オプションを指定する必要があります。
mysqldump -u... -p... --no-create-info --skip-extended-insert mydb t1 > mydb_table.sql
こうすれば、処理する挿入だけができます。 --skip-extended-insert
を使用すると、一度に1行挿入されます。これは重複する問題の処理に役立ちますが、次のようにインポートする必要があります。
mysql -u...-p... --force mydb < mydb_tables.sql
--force
オプションは、重複するキーが検出された場合にINSERTを続行することのみを目的としています。その場合、問題のあるINSERTのエラーは無視され、次のINSERTに進みます。