194 читали · 2 года назад
UPSERT в БД Oracle (Python, SQLAlchemy)
Всем привет. Я дата-инженер и достаточно долгое время работал с БД PostgreSQL. Сменив работу я столкнулся с Oracle и его особенностями. Например, с отсутствием такой удобной конструкции при записи данных, как INSERT... ON CONFLICT DO UPDATE. Есть ее аналог, но чтобы понять объяснение из документации, нужно напрягать мозг. Напишу в том виде, в котором это было бы понятно мне, когда я впервые это увидел. Может, пригодится еще кому-то. Для записи я использую Python и SQLAlchemy, но программного кода здесь не будет, только SQL в нужном формате. Итак, вместо "INSERT … ON CONFLICT DO... "в Oracle используется MERGE...
9 месяцев назад
Операция MERGE
Приветствую всех! В этой статье мы разберем операцию MERGE. Для начала взглянем синтаксис: MERGE <Основная таблица> USING <Таблица или запрос источника> ON <Условия объединения> [WHEN MATCHED [AND <Доп. условие>] THEN <UPDATE или DELETE>] [WHEN NOT MATCHED [AND <Доп. условие>] THEN <INSERT>] [WHEN NOT MATCHED BY SOURCE [AND <Доп. условие>] THEN <UPDATE или DELETE>] [...n] [OUTPUT] Оператор MERGE является очень мощным средством...