Vertica MERGE
Операция MERGE позволяет объединить операции INSERT и UPDATE в БД Vertica в одну операцию. Для примера возьмем две таблицы:
CREATE TABLE target_table (id INT PRIMARY KEY, count INT);
CREATE TABLE source_table (id INT, count INT);
И вставим в них такие данные:
INSERT INTO target_table (id, count) VALUES (1,1);
INSERT INTO source_table (id, count) VALUES (1,1);
Теперь выполним MERGE данных:
MERGE INTO target_table t USING source_table s ON s.id = t.id WHEN MATCHED
THEN UPDATE SET count = s.count + t.count;
## Объединение по колонке id
Эта операция вставит данные из двух таблиц в одну. Однако, при совпадении значений id, вместо вставки будет происходить увеличение колонки count.
SELECT * FROM target_table
## Выборка результата
id | count ---+----- 1 | 2 (1 row)
## значение во второй колонке – это сумма значений из двух исходных таблиц
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: