У меня есть один вопрос относительно Python и модуля sqlalchemy. Что эквивалентно для cursor.rowcount
в sqlalchemy Python?Как получить количество затронутых строк в sqlalchemy?
ответ
Хотя это не указано в документах, объект ResultProxy
также имеет свойство rowcount
.
rowcount
является не Число затронутых строк. Его количество совпадающих строк. Посмотрите, что doc говорит
Этот атрибут возвращает количество строк совпавших, которая не обязательно совпадает с числом строк, которые были фактически модифицированном - с UPDATE заявление, например, может не иметь сети изменение в заданной строке, если заданные значения SET такие же, как те, что присутствуют в строке. Такая строка будет соответствовать, но не будет изменена. На движках, которые показывают как стили, такие как MySQL,
rowcount
по умолчанию настроено вернуть количество матчей во всех случаях
Таким образом, для обоих из следующих сценариев rowcount
сообщат 1
. Из-за Rows matched: 1
одна строка изменена с
update
заявление.Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
же
update
выполняется оператор.Query OK, 0 row affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0
'rowcount' не на самом деле подсчет * затронутых строк *. См. Мой ответ для подробностей. –
Документы включают в себя 'rowcount' в эти дни: http://docs.sqlalchemy.org/en/latest/core/connections.html#sqlalchemy.engine.ResultProxy.rowcount –