首页 > 解决方案 > 如何从另一个数据库更新mysql中的表

问题描述

我正在尝试使用其他数据库更新表。

我有 2 个名为 A_DB 和 B_DB 的数据库

在每个数据库中,我都有一个名为 prvn 的表,其中包含以下列和值:

A_DB. prvn : 
id (PK, A_I)   |   dm   |   Name  |    edt  |
1                 1001      David       1
2                 1001      Sam         1
3                 1002      Samin       0

---------------------------------------------

B_DB. prvn : 
id             |   dm   |   Name  |    edt  |
1                 1001      Da          0
2                 1001      Sa          0

我使用以下代码将 A_DB 中的新值插入到 B_DB 中:

INSERT INTO B_DB.prvn 
SELECT * FROM A_DB.prvn
WHERE A_DB.prvn.id NOT IN (SELECT id FROM B_DB.prvn)

但是现在我想在 edt 字段更改时用 A_DB 值更新 B_DB 值所以我使用以下代码:

UPDATE B_DB.prvn SET 
B_DB.prvn.id = A_DB.prvn.id, B_DB.prvn.dm = A_DB.prvn.dm, B_DB.prvn.Name = A_DB.prvn.Name 
WHERE A_DB.prvn.edt=1 AND A_DB.prvn.edt <> B_DB.prvn.edt

但它不起作用。请帮助如何解决它

标签: mysql

解决方案


它将帮助您从另一个表更新一个表。

UPDATE B_DB.prvn a INNER JOIN A_DB.prvn b 
ON a.id = b.id SET a.id = b.id, a.dm=b.dm,
a.Name = b.Name where b.edt=1 and a.edt<>b.edt

推荐阅读