У меня есть словарь python «люди», заполненный запросом к PostgreSQL. Я делаю некоторую обработку, которая не требует никакого взаимодействия с базой данных. Таким образом, код идетpython массовое обновление таблиц
for person in persons:
process
Основываясь на успех/провал процесса, я установить флаг для каждой записи в словаре. Как только процесс закончен, я хочу обновить таблицу данными в словаре. Можно ли это сделать без цикла/итерации? Сейчас я делаю обновление внутри цикла. Когда список большой, это связано с слишком большим количеством запросов к базе данных.
Вы можете объединить SQL 'UPDATE' и запустить их после формирования всего запроса. То есть, в каждом 'process' concatenate что-то вроде' UPDATE table SET col = val, ... WHERE condition' - строка, которую вы будете использовать для запуска команды SQL. – linkyndy
Это вариант, который я изучаю. Существует ли более простой способ - например, «таблица обновлений x установить y = 0, где id in (persons.id)». Может быть, желаемое за действительное – Jayadevan
Вы ** можете ** использовать оператор 'IN' в предложении' WHERE', но я не думаю, что можно установить значения _different_ для измененных столбцов. Если вы хотите обновить нужные столбцы с одинаковым значением для всех запрошенных строк, это будет работать. – linkyndy