Обсуждение участника:BlackSpire/merge
Merge(SQL)
[править код]В системах управления базами данных команда SQL MERGE
используется для вставки
в таблицу новых записей, либо обновления
существующих в засимости от того соблюдено ли условие. Команда была официальна введена в стандарте SQL:2008 .
Использование
[править код]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 ...
Другие нестандартные реализации
[править код]Некоторые СУБД поддерживают схожую функциональность, используя свои собственные нестандартные SQL расширения
MySQL, например поддерживает синтаксис INSERT ... ON DUPLICATE KEY UPDATE
[1] использование которого приводит к похожим результатам. Так же поддерживается форма REPLACE INTO
[2], which has a similar (although subtly different) effect.
SQLite's INSERT OR REPLACE INTO
также работает схожим образом.
Firebird поддрживает как синтаксис MERGE INTO
, так и однострочный вариант UPDATE OR INSERT INTO tablename (columns) VALUES (values) [MATCHING (columns)]
, однако второй вариант не позволяет выбрить различные действия в зависимости от того была ли проведена втавка или обновление (т.е. setting a new sequence value only for new rows, not for existing ones.)
References
[править код]- ↑ MySQL :: MySQL 5.1 Reference Manual :: 12.2.4.3 INSERT ... ON DUPLICATE KEY UPDATE Syntax
- ↑ MySQL 5.1 Reference Manual: 11.2.6 REPLACE Syntax
External links
[править код]- Oracle10g Release 2 documentation on MERGE
- DB2 v9 MERGE statement
- SQL Server 2008 documentation
- H2 (1.2) SQL Syntax page
Это заготовка статьи о компьютерных языках. Помогите Википедии, дополнив её. |