4 месяца назад
Генерация значений для Primary key
Генерация значений для Primary key Друзья, всем привет! 👋 В нашем канале разного уровня специалисты, этот пост будет полезен Junior-разработчикам. Один из первых вопросов при проектировании таблиц — как генерировать уникальные значения для первичного ключа? Казалось бы, простая задача, но Oracle предлагает несколько подходов, каждый со своими плюсами и минусами. Неправильный выбор может привести к проблемам с производительностью, конкурентностью или усложнить миграцию данных. Способ 1. Последовательности (SEQUENCE) Классический и самый распространённый подход...
194 читали · 3 года назад
UPSERT в БД Oracle (Python, SQLAlchemy)
Всем привет. Я дата-инженер и достаточно долгое время работал с БД PostgreSQL. Сменив работу я столкнулся с Oracle и его особенностями. Например, с отсутствием такой удобной конструкции при записи данных, как INSERT... ON CONFLICT DO UPDATE. Есть ее аналог, но чтобы понять объяснение из документации, нужно напрягать мозг. Напишу в том виде, в котором это было бы понятно мне, когда я впервые это увидел. Может, пригодится еще кому-то. Для записи я использую Python и SQLAlchemy, но программного кода здесь не будет, только SQL в нужном формате. Итак, вместо "INSERT … ON CONFLICT DO... "в Oracle используется MERGE...
644 читали · 3 года назад
Как обойти ограничение в 1000 элементов для оператора IN в ORACLE
Рано или поздно, каждый специалист, работающий с базами данных ORACLE, наталкивается на ограничение максимального количества элементов для оператора IN: SELECT *   FROM  VOUCHERS WHERE CLIENT_ID IN (28, 45, 46, 102,...) В ORACLE для оператора IN в скобках можно перечислять не более 1000 элементов через запятую. Иногда этого количества может не хватать. Что делать в этом случае? Во-первых, давай рассмотрим случай когда такого большого количества может не хватать? Не каждый день составляешь запрос...