我有2个数据库,一个是旧的,另一个是最近更新和使用的新数据库,但是我的一个团队成员错误地更新了旧数据库中的一些内容,现在我们正试图找到一种方法,如何从旧数据库中提取该数据库并更新新数据库。
我的2 db在结构上是相同的,除非我从两个表中删除了更改的ID的标题,我得到的标题不同,但其余的相同。
有人可以帮忙吗? 我所拥有的是一个旧表中的ID列表,它已被更改了大约2000条记录,我需要的是一个mysql脚本,它将循环通过所有这些记录并使用该记录更新新的数据库内容。
两个表中的表结构是:
ID, title, content
所以我尝试这样的事情:
UPDATE `dbA`.table SET `dbA`.content = `dbB`.contet WHERE `dbB`.`ID` BETWEEN 0 AND 2000
答案 0 :(得分:2)
您可以使用以下方法实现它:
UPDATE tableA A
JOIN tableB B
ON B.id = A.id
SET A.content = B.content
WHERE B.id BETWEEN 0 AND 2000
答案 1 :(得分:1)
你说不同的数据库 - 但它们是否在同一个MySQL实例上?如果没有,你可以通过FEDERATED引擎暴露吗?
如果是这种情况,您只需将2000个ID加载到新表中......
REPLACE INTO newdb.table (id, content, title)
SELECT o.id, o.content, o.title
FROM olddb.table o
INNER JOIN olddb.changed_ids c
ON o.id=c.id;
答案 2 :(得分:0)
如果您尝试手动执行此操作,这可能是一项非常艰巨的任务。
您可以尝试使用某种工具,例如coldiff
答案 3 :(得分:0)
你有没有试过这样的东西?
UPDATE `dbA`.table1 t1
JOIN `dbB`.table2 t2
ON t1.id = t2.id
SET t1.content = t2.content