2011-08-16 20 views
1

2つのデータベースがあります。私は1番目のデータベースの1つのテーブルからデータをダンプし、2番目のデータベースに別の名前で別のテーブルに挿入します。
私はテーブルtbl1とtabl2を持つDB1とテーブルtbl3とtbl4を持つDB2を持っています。私は、tabl1とtabl3が同じ構造を持っていることを知っています。どのようにmysqldumpコマンドを使用して別のデータをコピーするには?
私はこれをやろうとしましたが、うまくいきません。1つのテーブルからデータをダンプして別のテーブルに挿入する方法

mysqldump --user root --password=password --no-create-info DB1 tbl1 > c:/dump.sql 
mysql --user root --password=password DB2 tbl3 < c:/dump.sql 

答えて

5

これはTBL1は、DB2に存在していない場合は、両方のデータベースは、あなたがすることができ、直接

insert into DB2.tbl3 select * from DB1.tbl1; 

、同じデーモンを使用して、同じサーバーに座っている場合が異なるため、テーブル名

に仕事に行くされていませんこのため、
擬似コード:

# import as tbl1 from DB1 into tbl1 in DB2 
mysqldump DB1 tbl1 | mysql DB2 

# then rename tbl1 in DB2 to tbl3 
mysql DB2 -N <<< "rename table tbl1 to tbl3" 
+0

この古いポストを復活させて申し訳ありません。どの方法がパフォーマンスが良いのか、' tbl3に挿入する 'か、ダンプを取って新しいテーブルに復元する方法、私のテーブルには10億円のエントリがあると考えています。 – Saurabh

+0

ダンプを実行し、再挿入する方が良いでしょう。または、レプリケーションを設定します。 – ajreal

2

私は、これは、リモートホスト、データベース全体にローカルホストからそれを転送し、Linuxのシェルコマンドラインで

mysqldump --user=username --password=xxxx dbname | mysql --host=remotehost.com --user=username --password=xxxx -C dname 

を使用しています。

+0

私は、このコマンドを実行すると(mysqldumpを--user =ルート--password =パスワードDB1のTBL1 |のmysql --user =ルート--pas sword = password -C DB2 tbl3)の中に "write on on 22"と書かれています。 – Alexander

+0

ユーザー名とパスワードの組み合わせに、両面でこれを実行するのに十分な権限がありますか? – uncovery

+0

ええ、私は確信して – Alexander

関連する問題