Алтай
UPSERT в БД Oracle (Python, SQLAlchemy)
Всем привет. Я дата-инженер и достаточно долгое время работал с БД PostgreSQL. Сменив работу я столкнулся с Oracle и его особенностями. Например, с отсутствием такой удобной конструкции при записи данных, как INSERT... ON CONFLICT DO UPDATE. Есть ее аналог, но чтобы понять объяснение из документации, нужно напрягать мозг. Напишу в том виде, в котором это было бы понятно мне, когда я впервые это увидел. Может, пригодится еще кому-то. Для записи я использую Python и SQLAlchemy, но программного кода здесь не будет, только SQL в нужном формате. Итак, вместо "INSERT … ON CONFLICT DO... "в Oracle используется MERGE...
Печеньки от Oracle. Логическое удаление записи
Запись нужно удалить, но данные терять не хочется - что делать? Нужно ввести в таблицу дополнительную колонку-выключатель, например так: alter table my_tab
add is_active number
default 1
; Обычно мы используем не менее двух схем (пользователей) базы данных: Односхемное решение, когда среднему слою (PHP, APEX, иные среды Web программирования) дается доступ прямо к таблицам, мы не рассматриваем. Так поступать просто нельзя. Соответственно, мы оборачиваем таблицы схемы-владельца представлениями, на...