Merge (SQL)
From Wikipedia, the free encyclopedia
| Please help improve this article or section by expanding it. Further information might be found on the talk page or at requests for expansion. (March 2008) |
A relational database management system uses SQL MERGE (aka. upsert) statements to INSERT new records or UPDATE existing records depending on whether or not a condition matches. It was officially introduced in the SQL:2003 standard.
The usage is as follows:
- MERGE INTO table_name USING table_name ON (condition)
- WHEN MATCHED THEN UPDATE SET column1 = value1 [, column2 = value2 ...]
- WHEN NOT MATCHED THEN INSERT column1 [, column2 ...] VALUES (value1 [, value2 ...])
[edit] Other non-standard implementations
Some other database management systems support this, or very similar behavior, through their own, non-standard SQL extensions.
MySQL, for example, supports the use of INSERT ... ON DUPLICATE KEY UPDATE syntax[1] which can be used to achieve the same effect. It also supports REPLACE INTO... syntax[2], which has a similar (although subtly different) effect.
[edit] References
- ^ MySQL :: MySQL 5.1 Reference Manual :: 12.2.4.3 INSERT ... ON DUPLICATE KEY UPDATE Syntax
- ^ MySQL AB :: MySQL 5.1 Reference Manual :: 11.2.6 REPLACE Syntax
[edit] External links
|
|||||||||||||||||||||||

