Похожие чаты

Sqlalchemy v2 Есть список данных. Часть из них нужно вставить в

бд, часть обновить, а часть проигнорировать. Алгоритм такой:
Если пользователя нет в базе - добавляем.
Если пользователь есть, но новое время больше - обновляем, но если меньше,то ничего не делаем

Можно запихать в 1 запрос? Если можно накидайте пример запроса))

upd: пользователи - уникальны

11 ответов

4 просмотра

Для начала нужно написать такой запрос на SQL, а дальше переводить в алхимию. Но чувствую, что не напишется он на алхимии… нужно будет либо переходить на чистый SQL, либо доделывать питоном

insert ... on conflict update set ... Case

Tishka17
insert ... on conflict update set ... Case

Где мои подсказочки 😢

Не лучше попробовать забрать юзера и дальше с объектом модельки работать? user = repo.get_user(...) if not user: create user elif user.col > value: update user

🍉
Не лучше попробовать забрать юзера и дальше с объе...

Количество записей может достигать 1к. Поэтому по одному дергать не вариант

PirraToZ Бот в био (скидки)
Количество записей может достигать 1к. Поэтому по ...

А не обязательно коммитить каждого юзера. Обработай всех одной сессией, потом коммит. Думаю алхимия разберётся, где батч пихнуть. Хотя спорное заявление, надо почитать доку

нужно. и все это покрыть ексекутемени

Patrick [in search of work]
нужно. и все это покрыть ексекутемени

Там несколько запросов за раз идёт или зачем ext-many?

PirraToZ Бот в био (скидки)
Там несколько запросов за раз идёт или зачем ext-m...

каких запросов? тебе же вставить надо или обновить

Patrick [in search of work]
каких запросов? тебе же вставить надо или обновить

да, но обновить в том случае, если запись уже есть и время у записи меньше нового

Похожие вопросы

Обсуждают сегодня

Карта сайта