将值从一个db带到另一个db

时间:2013-06-25 17:05:58

标签: mysql sql

我正在尝试编写一个将执行以下操作的SQL查询。

我有两个数据库,一个是databaseA,另一个是databaseB。

他们都有类似的表名为zone。

两个名为zone的表都有不同的列数,但是有些列是相同的。我现在唯一关注的列是ID和minclip。

我需要一个查询,它将获取databaseA的区域min_clip的值,并将其插入到databaseB的区域minclip中的每一行,但仅当两个数据库的ID值匹配时才会这样。

所以它需要来自databaseA.zone的minclip值并将其插入到databaseB.zone中,其中两者的id列匹配。

1 个答案:

答案 0 :(得分:0)

据我了解,基本上你想从databaseB.zone更新databaseA.zone中的值,而不是插入:

update databaseB.zone 
set minclip=(select databaseA.zone.minclip 
from databaseA.zone where databaseA.zone.ID=databaseB.zone.ID)

考虑到数据被截断的问题,让我们尝试从databaseA.zone中的值生成SQL语句:

select concat('update databaseB.zone 
    set minclip=',minclip,' where ID=',ID,';') from databaseA.zone

获取此SQL的输出并运行它。

将会有一堆零记录更新,但我不会开始与databaseA.zonedatabaseB.zone交叉以保持简单。