11、oracle merge into用法
oracle merge into用法
merge into
使用对于更新同一张表或字段相同的值时,直接替换字段的值,使用效率更高
使用场景:存在的数据进行更新,不存在的数据进行
语法
此处更新的表为tgt
表,src
表作为更新的条件,on
后面的条件无法作为set
的值
MATCHED
:作为匹配on
条件时,执行下面的操作
not MATCHED
:不匹配on
条件时,执行下面的操作
merge into [tgt] using [src] on [tgt.id = src.id and tgt.name = src.name] where matched then [update sql] where not matched then [insert sql]
使用
sys_company
与ad_base_company
表结构基本上时一致的,所更新的值的字段是一致的
MERGE INTO sys_company a USING ad_base_company b ON (a.company_code = b.company_code) WHEN MATCHED THEN UPDATE SET a.upper_company_id = b.upper_company_id, a.company_type = b.company_type, a.company_c_name = b.company_c_name, a.company_t_name = b.company_t_name, a.company_e_name = b.company_e_name, a.show_name = b.show_name, a.address = b.address, a.mobile_phone = b.mobile_phone, a.valid_is = b.valid_is WHEN NOT MATCHED THEN INSERT (a.company_id, a.upper_company_id, a.company_code, a.company_type, a.company_c_name, a.company_t_name, a.company_e_name, a.show_name, a.address, a.mobile_phone, a.email, a.fax, a.website, a.remark, a.display_no, a.valid_is) VALUES (seq_sys_company.nextval, b.upper_company_id, b.company_code, b.company_type, b.company_c_name, b.company_t_name, b.company_e_name, b.show_name, b.address, b.mobile_phone, b.email, b.fax, b.website, b.remark, b.display_no, b.valid_is);
标签:
oracle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?