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
|