SA Шпаргалка

Все ответы в 2 клика

Средний

Что такое MERGE (UPSERT) в SQL?

MERGE (в PostgreSQL это INSERT ... ON CONFLICT) — это операция "Вставить или Обновить" (UPSERT).

Она решает проблему: мы хотим вставить строку, но если запись с таким ID уже существует, мы хотим обновить ее, а не получить ошибку уникальности.

Пример в PostgreSQL:

INSERT INTO users (id, name, login_count)
VALUES (1, 'Ivan', 1)
ON CONFLICT (id)
DO UPDATE SET login_count = users.login_count + 1;

✅ Зачем: Избавляет от необходимости делать два запроса (SELECT для проверки существования, а затем INSERT или UPDATE), устраняя состояние гонки (Race Condition).

Другие вопросы темы «Сложные операции»

Ещё вопросы раздела «SQL и БД»

Все вопросы раздела «SQL и БД»