但是,当一个项目在主数据库中被删除时,我只想在报表数据库中设置一个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中不匹配的行?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)