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)

# значение во второй колонке — это сумма значений из двух исходных таблиц


Подпишитесь на Хайлоад с помощью Google аккаунта
или закройте эту хрень