и то же?
db.session.execute(model.__table__.update().where(model.__table__.c.id.in_(ids)).values(value=value))
db.sesstion.flush()
db.session.query(model).filter(model.id.in_(ids)).update({'value': value}, synchronize_session="fetch")
Проблема в том, что в первом случае при джойне модели обновленное состоянии подтягивается только для первого объекта.
Что значит для первого объекта?
Если сделать что-то типа db.session.query(model).filter(model.id.in_(ids)).all(), то в списке новое значение будет только у первого объекта. Не знаю, важное ли уточнение: транзакция коммитится после всех этих действий.
Я в первом сообщении написал, что при джойне, но если и просто запрос такой сделать, в списке только у первого значения обновляет.
Обсуждают сегодня