tgoop.com/sqlhub/1940
Create:
Last Update:
Last Update:
🧠 Oracle SQL — продвинутый приём: `MERGE` вместо `UPDATE` + `INSERT`
Если ты сначала пытаешься обновить строку, а если её нет — вставляешь новую, не пиши две команды. Используй MERGE
— это быстрее, чище и атомарно.
🔧 Пример:
MERGE INTO employees e
USING (SELECT 101 AS emp_id, 'Alice' AS name FROM dual) src
ON (e.emp_id = src.emp_id)
WHEN MATCHED THEN
UPDATE SET e.name = src.name
WHEN NOT MATCHED THEN
INSERT (emp_id, name)
VALUES (src.emp_id, src.name);
📌 Что делает:
• Ищет по ключу (`ON`)
• Если запись есть — обновляет
• Если нет — вставляет
• Всё за один проход, без гонок и лишних проверок
⚡ Почему это важно:
• Меньше round-trip'ов между приложением и БД
• Атомарная логика —
MERGE
гарантирует целостность • Лучше подходит для ETL, синхронизации, загрузки внешних данных
🧠 Вывод: если пишешь
IF EXISTS THEN UPDATE ELSE INSERT
— ты уже проиграл. Пиши
MERGE
, и база всё сделает за тебя.BY Data Science. SQL hub
Share with your friend now:
tgoop.com/sqlhub/1940