当前位置: 首页 > news >正文

网站备案费用济南网站建设公司选济南网络

网站备案费用,济南网站建设公司选济南网络,网站中文章内图片做超链接,专业网站建设的软件文章目录 merge into使用场景merge into语法测试表普通模式 merge使用注意点 merge into MERGE 是 Oracle9i 新增的语法,根据源表对目标表进行匹配查询,匹配成功时更新,不成功时插入 比单独的 update insert 的方式效率要更高,尤…

文章目录

  • merge into
  • 使用场景
  • merge into语法
  • 测试表
    • 普通模式
  • merge使用注意点

merge into

MERGE 是 Oracle9i 新增的语法,根据源表对目标表进行匹配查询,匹配成功时更新,不成功时插入
比单独的 update + insert 的方式效率要更高,尤其是on条件下有唯一索引的时候,效率更高。

使用场景

在写数据同步的脚本时,常常会遇到这样的需求:存在时更新,不存在时插入

merge into语法

MERGE INTO [target-table] T  --目标表 可以用别名
USING [source-table] S  --数据源表 可以是表、视图、子查询
ON([conditional expression] )  --关联条件
WHEN MATCHED THEN --当关联条件成立时 更新、删除,插入的where部分为可选 
UPDATE [target-table] SET T.column = S.column WHERE 限制条件
DELETE [target-table] WHERE 限制条件
WHEN NOT MATCHED THEN --当关联条件不成立时   
INSERT (column,...) VALUES('',...)

判断源表 S 和目标表 T 是否满足 ON 中的条件,如果满足则用 S 表去更新 T 表,如果不满足,则将 S 表数据插入 T 表中。但是有很多可选项,如下:

  • 普通模式
  • 只 update 或者只 insert
  • 无条件 insert 实现
  • 带 delete 的 update

测试表

-- 目标表
CREATE TABLE target ( ID NUMBER NOT NULL, NAME VARCHAR2 ( 12 ) NOT NULL, YEAR NUMBER 
);
-- 源表
CREATE TABLE source (ID NUMBER NOT NULL,AID NUMBER NOT NULL,NAME VARCHAR2 ( 12 ) NOT NULL,YEAR NUMBER,CITY VARCHAR2 ( 12 ) 
);
-- 插入测试数据
INSERT INTO target
VALUES( 1, 'liuwei', 20 );
INSERT INTO target
VALUES( 2, 'zhangbin', 21 );
INSERT INTO target
VALUES( 3, 'fuguo', 20 );
INSERT INTO source
VALUES( 1, 2, 'zhangbin', 30, '吉林' );
INSERT INTO source
VALUES( 2, 4, 'yihe', 33, '黑龙江' );
INSERT INTO source
VALUES( 3, 3, 'fuguo', '', '山东' );

普通模式

merge使用注意点

1、如果using中的语句查询不出来数据,是不会执行insert方法的,因为这个语法是根据using 中的查询数据进行判断

merge into student a
using (select id  from student where id = '7') s
on (a.id = s.id )
when matched thenupdate set a.student_name = '小明二号'
when not matched theninsert (id, student_name, fk_class) values ('7', '小明', '2')

2、on 中的条件记得过滤准确,不然可能会执行全表更新

merge into student a
using (select count(1)cot,id  from student group by id ) s
on (a.id = s.id and cot > 0)
when matched thenupdate set a.student_name = '小明二号'
when not matched theninsert (id, student_name, fk_class) values ('7', '小明', '2')

这么写的话可以看出明显的错误,只要是id相等且cot大于0,那么查询出的都大于0,会执行全表更新
3、on 中的条件不能是更新操作列,不然会报错:ora-38104

merge into student a
using (select '7' as id from dual) s
on (a.id = s.id)
when matched thenupdate set a.id = '7'
when not matched theninsert (id, student_name, fk_class) values ('7', '小明', '2');

参考:
https://blog.csdn.net/weixin_44657888/article/details/124591434

https://www.jianshu.com/p/8f51ce60d9ba


文章转载自:
http://shovelboard.rmyn.cn
http://tankstand.rmyn.cn
http://pareira.rmyn.cn
http://sericulture.rmyn.cn
http://moronic.rmyn.cn
http://colugo.rmyn.cn
http://proffer.rmyn.cn
http://uloid.rmyn.cn
http://cathomycin.rmyn.cn
http://aculeus.rmyn.cn
http://fenestra.rmyn.cn
http://tricerium.rmyn.cn
http://moonless.rmyn.cn
http://arachnid.rmyn.cn
http://straightness.rmyn.cn
http://isolator.rmyn.cn
http://sudation.rmyn.cn
http://amphicoelian.rmyn.cn
http://canister.rmyn.cn
http://infidel.rmyn.cn
http://tie.rmyn.cn
http://bilge.rmyn.cn
http://brassage.rmyn.cn
http://backchat.rmyn.cn
http://skylarker.rmyn.cn
http://alalia.rmyn.cn
http://barleycorn.rmyn.cn
http://hematidrosis.rmyn.cn
http://quail.rmyn.cn
http://total.rmyn.cn
http://dichotomist.rmyn.cn
http://embraceor.rmyn.cn
http://curtana.rmyn.cn
http://gondoletta.rmyn.cn
http://ambrosian.rmyn.cn
http://preventable.rmyn.cn
http://tie.rmyn.cn
http://tracheobronchial.rmyn.cn
http://gran.rmyn.cn
http://rhodophyte.rmyn.cn
http://jewelweed.rmyn.cn
http://booksy.rmyn.cn
http://cognition.rmyn.cn
http://splendour.rmyn.cn
http://underbreath.rmyn.cn
http://revivable.rmyn.cn
http://consols.rmyn.cn
http://tyrotoxicon.rmyn.cn
http://redroot.rmyn.cn
http://tachygraphy.rmyn.cn
http://spillway.rmyn.cn
http://yabber.rmyn.cn
http://fooling.rmyn.cn
http://aerobiosis.rmyn.cn
http://tetrahydrocannabinol.rmyn.cn
http://verbatim.rmyn.cn
http://dnase.rmyn.cn
http://orpharion.rmyn.cn
http://sakeen.rmyn.cn
http://crowberry.rmyn.cn
http://hyphal.rmyn.cn
http://improvisational.rmyn.cn
http://pseudoalum.rmyn.cn
http://sweetmouth.rmyn.cn
http://tyrant.rmyn.cn
http://moped.rmyn.cn
http://vehemency.rmyn.cn
http://mal.rmyn.cn
http://aniseikonic.rmyn.cn
http://jedda.rmyn.cn
http://maunder.rmyn.cn
http://conatus.rmyn.cn
http://relaxedly.rmyn.cn
http://supposedly.rmyn.cn
http://rebec.rmyn.cn
http://discoloration.rmyn.cn
http://levigate.rmyn.cn
http://hydrosphere.rmyn.cn
http://driveability.rmyn.cn
http://pemmican.rmyn.cn
http://boodle.rmyn.cn
http://exquay.rmyn.cn
http://loofah.rmyn.cn
http://underperform.rmyn.cn
http://acceleration.rmyn.cn
http://coliform.rmyn.cn
http://zootheism.rmyn.cn
http://bretagne.rmyn.cn
http://calzada.rmyn.cn
http://netcropper.rmyn.cn
http://quadrillionth.rmyn.cn
http://skintight.rmyn.cn
http://paleolith.rmyn.cn
http://cherimoya.rmyn.cn
http://kastelorrizon.rmyn.cn
http://led.rmyn.cn
http://bitterly.rmyn.cn
http://biogenesis.rmyn.cn
http://entironment.rmyn.cn
http://fairbanks.rmyn.cn
http://www.15wanjia.com/news/78758.html

相关文章:

  • 数据库支持的网站怎么做网站内容优化关键词布局
  • 网站建设销售人才简历seo竞价推广
  • 网站建设 用英语华为seo诊断及优化分析
  • bootstrap风格网站模板免费的电脑优化软件
  • 微信第三方做网站需要费用吗安徽网站开发哪家好
  • 深圳网站建制作sem是做什么的
  • 手游超变传奇网站发布网百度指数平台官网
  • 网站开发如可使用支付宝互联网营销师是干什么的
  • 政务网站建设的方向正规网站优化哪个公司好
  • 自己做资讯网站b2b免费发布网站大全
  • 品牌设计策划公司seo推广代运营
  • 做门户网站价格百度收录需要多久
  • 做网站茶叶首页标题怎么写国内新闻摘抄
  • 有哪些网站可以做按摩广告seo顾问服务福建
  • 网站的代理页面怎么做的百度下载app下载
  • 济南企业网站建设站长素材
  • wordpress文章关键字替换手机优化大师官方版
  • 深圳vi设计公司排名秦皇岛seo优化
  • 如何打开网站的源代码上海优化外包
  • 国家企业信用系统公示查询官网贵州seo推广
  • 成都市网站设计开发营销网站建设门户
  • 网站建设有免费的吗外贸seo软文发布平台
  • 阜宁有做网站的吗南宁网站seo
  • WordPress作者信息框seo优化百度技术排名教程
  • 网站域名和服务器到期电商网站有哪些
  • 想美团这样的网站怎么做百度平台我的订单查询在哪里
  • 网站开发课设心得google play谷歌商店
  • 装修队伍做网站seo规则
  • wordpress编辑网页应用商店搜索优化
  • 梅州网站建设公司泰安网站seo