2012-04-25 8 views
0

コピー(2つの異なるデータベースで)私は別のテーブルに一つのテーブルから列をコピーしようとしたMySQLで別のテーブルの列(2つの異なるデータベース)

私は次のクエリを試してみました:

update des_db.mytable as des 
set col= (select col from src_db.mytable as src where src.id = db.id) 

これらの2つのテーブルを結合することもできます。
両方のソリューションで、「合計ロック数がロック・テーブル・サイズを超えています」というエラーが表示されました。
私は32Mに」innodb_log_buffer_sizeを増加し、それが動作しません

私はこれを行うには、任意の解決策があるかどうかを知りたい

重要な注意:ソース表が実際に私のバックアップであり、それは持っていますもう一つは持っていると同じ行数(666666の記録)

+0

バックアップテーブル全体を現在のデータベースにコピーすることで問題は解決しましたが、他のフィールドを変更して特定の列のみを取得したい場合は、何をすべきか分かりません。 –

答えて

1

それが動作するはずです。この方法:

UPDATE 
des_db.mytable 
INNER JOIN src_db.mytable ON des_db.mytable.id = src_db.mytable.id 
SET 
des_db.mytable.col = src_db.mytable.col; 

残念ながら、私は今それをテストすることはできませんが、私は、この作品はかなり確信しています。エイリアスもうまくいくはずです。

0
UPDATE database1.table1, database2.table1 
SET database1.table1.columnA = database2.table1.columnA 
WHERE database1.table1.id = database2.table1.id; 
関連する問題