在mysql(两个不同的数据库)中将列从一个表复制到另一个表

时间:2012-04-25 14:31:57

标签: mysql copy

我尝试将列从一个表复制到另一个表(在两个不同的数据库中)

我尝试了以下查询:

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

并加入这两张表。
在这两个解决方案中,我收到错误“锁的总数超过锁表大小”。
我将“innodb_log_buffer_size”增加到32M并且它不起作用。

我想知道是否有任何解决方案可以做到这一点。

重要说明:源表实际上是我的备份,它与另一个具有相同的行数。 (666,666条记录)

2 个答案:

答案 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;

不幸的是我现在无法测试它,但我确信这很有效。别名也应该有用。

答案 1 :(得分:0)

UPDATE database1.table1, database2.table1
SET database1.table1.columnA = database2.table1.columnA
WHERE database1.table1.id = database2.table1.id;