mysql - 如何从另一个数据库更新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
但它不起作用。请帮助如何解决它
解决方案
它将帮助您从另一个表更新一个表。
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
推荐阅读
- java - 如何使用 Spring Security 配置不同的路径?
- c# - 如何从动作委托访问参数并在异常情况下传递给另一个方法?
- pandas - Pandas,将所有数据框转换为唯一的分类值
- react-native - 标头在本机反应中不可见
- arrays - Mongodb嵌套数组匹配
- scala - 如何从 http 响应中保存标头
- bash - 我目前在两台机器上运行 cron 脚本来执行任务 - 我可以将它们组合成一个使用两台服务器的脚本吗?
- c++ - 如何在派生构造函数中初始化从基类继承的向量
- excel - 使用 While 循环获取特定列中的行句柄
- c# - 为什么这个 Base36 随机字符串不使用 RandomNumberGenerator 随机分布字符