06:44
1,0×
00:00/06:44
480,9 тыс смотрели · 4 года назад
194 читали · 2 года назад
UPSERT в БД Oracle (Python, SQLAlchemy)
Всем привет. Я дата-инженер и достаточно долгое время работал с БД PostgreSQL. Сменив работу я столкнулся с Oracle и его особенностями. Например, с отсутствием такой удобной конструкции при записи данных, как INSERT... ON CONFLICT DO UPDATE. Есть ее аналог, но чтобы понять объяснение из документации, нужно напрягать мозг. Напишу в том виде, в котором это было бы понятно мне, когда я впервые это увидел. Может, пригодится еще кому-то. Для записи я использую Python и SQLAlchemy, но программного кода здесь не будет, только SQL в нужном формате. Итак, вместо "INSERT … ON CONFLICT DO... "в Oracle используется MERGE...
271 читали · 3 года назад
КАК ВСТАВИТЬ ТОЛЬКО НЕДОСТАЮЩИЕ СТРОКИ ИЗ ОДНОЙ ТАБЛИЦЫ В ДРУГУЮ, НЕ ИСПОЛЬЗУЯ ПОДЗАПРОСЫ И MERGE
MERGE есть не во всех СУБД, да и подзапросы могут негативно сказаться на производительности. Хорошим решением вставки строк из одной таблицы в другую с предварительной проверкой отсутствия вставляющихся записей, является классический LEFT JOIN с проверкой во WHERE. Данный материал, по большей части, думаю, будет полезен специалистам службы внедрения и поддержки пользователей с техническим разбором возникших проблем, так как этим горячим головам на боевой базе в реальном времени приходится решать проблемы клиента...