0

あるテーブルから別のテーブルに列をコピーしようとしました(2つの異なるデータベース内)

次のクエリを試しました。

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

また、これら2つのテーブルを結合します。
どちらのソリューションでも、「ロックの総数がロックテーブルのサイズを超えています」というエラーが発生しました。
「innodb_log_buffer_sizeを32Mに増やしましたが、機能しません。

これを行うための解決策があるかどうか知りたいです。

重要な注意:ソーステーブルは実際には私のバックアップであり、他のテーブルと同じ数の行があります。(666,666レコード)

4

2 に答える 2

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;

残念ながら、今はテストできませんが、これでうまくいくと確信しています。エイリアスも機能するはずです。

于 2012-04-25T16:03:49.903 に答える