Home >Common Problem >merge into usage

merge into usage

(*-*)浩
(*-*)浩Original
2019-06-26 10:41:2116632browse

To put it simply, it is judged whether there is data in the table that meets the on() condition. If it is, the data will be updated. If not, the data will be inserted.

merge into usage

There is a table T with two fields a and b. We want to do Insert/Update in table T. If the conditions are met, then Update the value of b in T, otherwise insert a record in T. In Microsoft's SQL syntax, a simple sentence is sufficient. The syntax in SQL Server is as follows: (Recommended learning: MySQL video tutorial) 

if exists(select 1 from T where T.a='1001' )
update T set T.b=2 Where T.a='1001'
else
insert into T(a,b) values('1001',2);

But it is obvious This syntax can only change one statement for SQL, and Oracle cannot use it. So there is Merge into (a feature introduced by Oracle 9i) syntax

merge into 目标表 a
 
using 源表 b
 
on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……)  
 
when matched then update set a.更新字段=b.字段
 
when  not matched then insert into a(字段1,字段2……)values(值1,值2……)

"In a Merge that has both Insert and Update syntax In the statement, the total number of Insert/Update records is the number of records in the "source table" in the Using statement.

Source table b may be a table with a different table structure than a, it may be a temporary table with the same table structure, or it may be data we have assembled ourselves.

For more MySQL-related technical articles, please visit the MySQL Database Graphic Tutorial column to learn!

The above is the detailed content of merge into usage. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn