sql - 从外部相同数据库 2 更新数据库 1 上的表中的字段
问题描述
为了保持这个镜头。
我想用我保存在外部演示表中的所有价格更新 product_price 字段。
我尝试使用以下查询,但它抛出错误
UPDATE dest
SET product_price = src.product_price
FROM DB2.trades AS dest
INNER JOIN DB1.trades AS src
ON dest.KEY = src.KEY
--And KEY = '12323';
你能帮忙看看怎么做吗?
解决方案
假设您要更新的表位于数据库 DB2 中,而“外部”表位于另一个数据库 (DB1) 中,您需要创建一个到 DB1 的数据库链接(我们称之为dbl_db1
)并将其表引用为trades@dbl_db1
. 像这样的东西:
update trades d set
d.product_price = (select s.product_price
from trades@dbl_db1 s
where s.key = d.key
)
where exists (select null from trades@dbl_db1 a
where a.key = d.key
);
或者,使用MERGE
:
merge into trades d
using trades@dbl_db1 s
on (s.key = d.key)
when matched then update set
d.product_price = s.product_price;
推荐阅读
- python-3.x - IllegalArgumentException:'不支持的类文件主要版本 56'
- tcp - 攻击者会在wireshark 中搜索什么二进制值来检测TCP 段?
- python - Django 表单不发送 POST 请求并且站点冻结
- android - OK Google 无法使用 Google 操作。我的应用无法识别
- swift - 使用 SPM(Swift 包管理器)获取本地文件的 URL
- dynamics-crm - 门户中设置的多选选项,或可行的替代方案
- javascript - 将元素设置为画布中所有图层的顶部
- html - :first-child 选择所有元素
- javascript - 如何在 javascript 中从 varibale 中用逗号分隔
- java - 使用 PhpJasper 创建报告时 JDK 版本出错