如何一次更新多条记录 MySQL

How to update multiple records at once MySQL

我有 2 个数据库,一个是旧的,另一个是最近更新和使用的新数据库,但是我的一个团队成员错误地更新了旧数据库中的一些东西,现在我们正在尝试找到一个方式,如何从旧数据库中提取那个并更新新数据库中的记录。

我的 2 个数据库在结构上是相同的,除了当我从两个 table 的 ID 上提取标题时,我得到的标题很少不同,但其余的相同。

有人可以帮忙吗? 我所拥有的是来自旧 table 的 ID 列表,该列表更改了大约 2000 条记录,我需要的是一个 mysql 脚本,该脚本将遍历所有这些记录并更新新的数据库内容那个。

Table 两个 table 中的结构是:

ID, title, content 

所以我正在尝试这样的事情:

UPDATE `dbA`.table SET `dbA`.content = `dbB`.contet WHERE `dbB`.`ID` BETWEEN 0 AND 2000

如果您尝试手动完成,这可能是一项真正艰巨的任务。

您可以尝试一些工具来做到这一点,例如 coldiff

您可以使用以下方法实现它:

UPDATE tableA A
JOIN tableB B
    ON B.id = A.id
SET A.content = B.content
WHERE B.id BETWEEN 0 AND 2000

您说的是不同的数据库 - 但它们在同一个 MySQL 实例上吗?如果不能,您可以通过 FEDERATED 引擎公开吗?

如果是这种情况,您只需要将 2000 个 ID 加载到新的 table 和....

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;

你试过这样的事情吗?

UPDATE `dbA`.table1 t1
JOIN `dbB`.table2 t2
    ON t1.id = t2.id
SET t1.content = t2.content