почему sqlalchemy first () обновляет более одной записи - PullRequest
0 голосов
/ 05 августа 2020

Хорошо, у меня есть такой код

net = table1.query.filter_by(user='foo', size=size).first()
net.user = bar
net.commit()

Я думал, что это обновит одну запись, но, к моему большому разочарованию, этого не произошло; он обновил ~ 2300 и сгенерировал эту ошибку

sqlalchemy.orm.exc.StaleDataError: UPDATE statement on table 'table1' expected to update 1 row(s); 2305 were matched

Документы говорят, что first() применяет ограничение на единицу в сгенерированном SQL.

Документы также скажем,

обратите внимание, что это может состоять из нескольких строк результатов, если присутствуют коллекции, загруженные соединением

, но, честно говоря, я действительно не понимаю эту часть.

У кого-нибудь еще была эта проблема? Какую функцию я должен использовать, если не первую? Кто-нибудь может объяснить, что здесь происходит, я действительно потерялся.

...