Есть таблица в базе, надо получить каждую строку, пройтись по всей базе, и после получения сделать манипуляции и записать ( обновить некоторые поля у строки). у таблицы есть id, но некоторые id отсутствуют, может быть 10,11, 14, 20,21 и т.д База постгрес 10, DRF и django3.
Я придумал только сделать селект отсортированный с лимитом 100 ( например) потом делать for по этим 100 записям. а затем записывать( обновлять) сразу 100 записей, или можно по одной . Затем снова делают селект отсортированный с лимитом и где id >чем последний из for.
Есть ли лучше решение ?
по пунктам и подробнее
что подробнее и что с пунктами ?
ну можно без пунктов и не подробнее, но что точно, так это то, что должно быть понятнее
что из всего текста тебе не понятно, я вроде всё расписал и что у меня установлено и что я хочу и как я думаю что может быть можно решить
я не буду объяснять, что именно непонятно, но учти один маленький нюанс: того, что есть у тебя в голове про твою проблему, больше ни у кого в голове нет
Что ты хочешь обновлять и зачем и зачем селект?
я хочу получить каждую строку, взять информацию из строки отправить в АПИ, получить информацию новую и переписать у этих строк некоторые значения.
Ну делай цикл, если по каждому объекту нужно запрос отправлять
это я понял, я это и описал в своём вопросе. у меня вопрос правильно ли брать как я описал выше. с сортировкой таблицы или есть какое-то лучше решение ?
Можно просто срезы брать instance.objects.all()[0:100]
а разве instance.objects.all() вернёт все значения? если в базе 1 млн записей он мне вернёт 1 млн? и зачем мне такой большой объект ?
Нет, это как offset limit работает
спасибо, попробую
Обсуждают сегодня