- 2
- 0
- 约7.75千字
- 约 8页
- 2017-07-09 发布于河南
- 举报
Merge into 详细介绍
Merge into 详细介绍
/*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 *//*語法:MERGE [INTO [schema .] table [t_alias] USING [schema .] { table | view | subquery } [t_alias] ON ( condition ) WHEN MATCHED THEN merge_update_clause WHEN NOT MATCHED THEN merge_insert_clause;*//*我们还是以《sql中的case应用》中的表为例。在创建另两个表fzq1和fzq2*/--全部男生记录create table fzq1 as select * from fzq where sex=1;--全部女生记录create table fzq2 as select * from fzq where sex=0;/*涉及到两个表关联的例子*/--更新表fzq1使得id相同的记录中chengji字段+1,并且更新name字段。--如果id不相同,则插入到表fzq1中.--将fzq1表中男生记录的成绩+1,女生插入到表fzq1中merge into fzq1 aa???? --fzq1表是需要更新的表using fzq bb??????????? -- 关联表on (aa.id=bb.id)??????? --关联条件when matched then?????? --匹配关联条件,作更新处理update setaa.chengji=bb.chengji+1,=???????? --此处只是说明可以同时更新多个字段。when not matched then??? --不匹配关联条件,作插入处理。如果只是作更新,下面的语句可以省略。insert values( bb.id, , bb.sex,bb.kecheng,bb.chengji);--可以自行查询fzq1表。/*涉及到多个表关联的例子,我们以三个表为例,只是作更新处理,不做插入处理。当然也可以只做插入处理*/--将fzq1表中女生记录的成绩+1,没有直接去sex字段。而是fzq和fzq2关联。merge into fzq1 aa???? --fzq1表是需要更新的表using (select fzq.id,fzq.chengji ?????? from fzq join fzq2?????? on fzq.id=fzq2.id) bb -- 数据集on (aa.id=bb.id)??????? --关联条件when matched then?????? --匹配关联条件,作更新处理update setaa.chengji=bb.chengji+1--可以自行查询fzq1表。/*不能做的事情*/merge into fzq1 aa??? using fzq bb?????????? on (aa.id=bb.id)??????? when matched then?????? update setaa.id=bb.id+1/*系统提示:ORA-38104: Columns referenced in the ON Clause cannot be updated: AA.ID我们不能更新on (aa.id=bb.id)关联条件中的字段*/update fzq1 set id=(select id+1 from fzq where fzq.id=fzq1.id)where id in(select id from fzq)--使用update就可以更新,如果有更好的方法,谢谢反馈!from this:/rhuang666/blog/item/09bae812ce7a752add540120.html
Oracle9i引入了MERGE命令,你能够在一个SQL语句中对一个表同时执行inserts和updates操作. MERGE命令从一个或多个数据源中选择行来updating或inserting到一个或多个表.
Oracle 10g中MERGE有如下一些改进:
1、UPDATE或INSERT子句是可选的
2、UPDATE和INSERT子句可以加WHERE子句
3、ON条件中使用常量过滤谓
您可能关注的文档
最近下载
- 社区卫生服务站护士岗位面试问题及答案.docx VIP
- 2026年河南地矿职业学院单招职业适应性测试题库汇编.docx VIP
- 国民经济行业分类(GB_T4754_2011).pdf VIP
- 2025护士社区考试题库及答案.doc VIP
- 急性肾衰竭的护理.pptx VIP
- 2026年河南地矿职业学院单招职业适应性测试参考题库及答案解析.docx VIP
- 在全单位开展树立和践行正确政绩观学习教育动员部署会上的讲话范文.docx VIP
- 社区护士初级考试试卷与答案.doc VIP
- 2025黑龙江农垦职业学院单招《数学》能力提升B卷题库附答案详解【夺分金卷】.docx VIP
- 区间信号工程设计.docx VIP
原创力文档

文档评论(0)