Merge语句是Oracle 9i新增的语法,用来合并Update和Insert语句。通过Merge语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行Update,无法匹配的执行Insert。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于Insert+Update。
merge语句语法如下:
1 | merge into table_name t |
on
关键字声明了关联条件,当有记录匹配时执行Update语句,没有匹配时,执行Insert语句。
示例
创建一张student表:
1 | create table student( |
插入一条学生标号为001的数据:
1 | SQL> merge into student s |
再次插入一条学生编号为001的数据,不过sname和ssex不一样:
1 | SQL> merge into student s |