在Oracle SQL中执行MERGE时,如何更新在SOURCE中不匹配的行?

在Oracle SQL中执行MERGE时,如何更新在SOURCE中不匹配的行?,第1张

概述我有一个主数据库和一个报表数据库,我需要将一个表从main同步到报表中. 但是,当一个项目在主数据库中被删除时,我只想在报表数据库中设置一个IsDeleted标志. 什么是优雅的方式来做到这一点? 我正在使用MERGE语句,如下所示: MERGE INTO report.TEST targetUSING (SELECT * FROM main.TEST) source ON (target 我有一个主数据库和一个报表数据库,我需要将一个表从main同步到报表中.

但是,当一个项目在主数据库中被删除时,我只想在报表数据库中设置一个IsDeleted标志.

什么是优雅的方式来做到这一点?

我正在使用MERGE语句,如下所示:

MERGE INTO report.TEST targetUSING (SELECT * FROM main.TEST) source   ON (target.ID = source.ID)WHEN MATCHED THEN    UPDATE SET (target... = source...)WHEN NOT MATCHED THEN    INSERT (...) VALUES (source...);

WHEN NOT MATCHED语句给出了main中的所有新值,但是我也想从report更新所有的olD值.

我正在使用Oracle PL / sql.

您可以使用单独的UPDATE语句来实现
UPDATE report.TEST targetSET    is Deleted = 'Y'WHERE  NOT EXISTS (SELECT 1                   FROM   main.TEST source                   WHERE  source.ID = target.ID);

我不知道有什么办法将它整合到你的MERGE语句中.

总结

以上是内存溢出为你收集整理的在Oracle SQL中执行MERGE时,如何更新在SOURCE中不匹配的行?全部内容,希望文章能够帮你解决在Oracle SQL中执行MERGE时,如何更新在SOURCE中不匹配的行?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1167481.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存