dポイントプレゼントキャンペーン実施中!

お世話になります。

スキーマが二つあります。db1とdb2です。

それぞれ、同じ構造のテーブルを持っていて、格納しているデータだけが違います。

db1にdb2をマージしようとしているのですが、上手くいきません。

手順としては、以下のとおりです。

(1)まず、db1のダンプを取りました。
  (インポート先でテーブルをドロップしないようにオプションを付加)
   c:\>mysqldump -u root --add-drop-table=false -p db1>db1.sql

(2)次に、db2に接続してダンプしたファイルをインポートしました。
   mysql>\. db1.sql

インポートの前後で、テーブルの件数を見たのですが、
変わらないのでマージできていないようです。

以下は当方の使用環境です。
Windows7 Pro 64Bit
MySQLServer 5.1(mysql-5[1].1.28-rc-win32)

他に必要な情報があればお聞かせください。


よろしくお願いします。

A 回答 (2件)

>db1とdb2は同じマシンの中にあります。



ああなるほど、では、出力の際に
mysqldump -u root --add-drop-table=false --insert-ignore=false --no-create-info=true -p db1 > db1.sql

としてみてはどうでしょうか?
    • good
    • 0
この回答へのお礼

上手くいきました。ありがとうございました。

お礼日時:2012/11/07 18:41

db1とdb2は異なるマシンということでよろしいですか?


ただdb2でもdb1というデータベース名で運用されているのですよね?

>db2に接続してダンプしたファイルをインポートしました。

とりあえずデータベース名を指定して
mysql -u root -p -D db1 <db1.sql

あとは、ユニークな属性でエラーではじかれているのであれば
mysqldumpする際、--insert-ignore=trueをつけて処理する必要があるかも
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

db1とdb2は同じマシンの中にあります。

mysql -u root -p -D db2? < db1.sql

を実行してみましたが、エラーになってしまいました。
ERROR 1050 (42S01) at line 24: Table 'myTable' already exists

お礼日時:2012/11/07 15:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!