235 читали · 3 года назад
UPSERT в БД Oracle (Python, SQLAlchemy)
Всем привет. Я дата-инженер и достаточно долгое время работал с БД PostgreSQL. Сменив работу я столкнулся с Oracle и его особенностями. Например, с отсутствием такой удобной конструкции при записи данных, как INSERT... ON CONFLICT DO UPDATE. Есть ее аналог, но чтобы понять объяснение из документации, нужно напрягать мозг. Напишу в том виде, в котором это было бы понятно мне, когда я впервые это увидел. Может, пригодится еще кому-то. Для записи я использую Python и SQLAlchemy, но программного кода здесь не будет, только SQL в нужном формате. Итак, вместо "INSERT … ON CONFLICT DO... "в Oracle используется MERGE...
10 месяцев назад
Решение задачи
Решение задачи. Update в PostgreSQL vs Oracle Друзья, всем привет! Сегодня разберем довольно простую задачку. Суть: написать update одной таблички с использованием другой. Полная постановка здесь. Итак Решение в Oracle 1️⃣ Через использование подзапроса update wallet w set configuration = ( select wt.default_configuration from wallet_template wt where wt.id = 6 ) where w.configuration is null; 2️⃣ Колхоз через Merge merge into wallet w using (select default_configuration from wallet_template where id = 6) wt on (1 = 1) when matched then update set w...