Получить количество измененных строк после выполнения sqlite3 - PullRequest
16 голосов
/ 23 февраля 2010

При выполнении операторов SQL, таких как UPDATE и INSERT, обычные .fetch*() методы в экземпляре Cursor явно не применяются к количеству измененных строк .

В случае выполнения одного из вышеупомянутых операторов, каков правильный способ получения соответствующего количества строк в Python и соответствующего API в интерфейсе Sqlite3 C?

Ответы [ 2 ]

26 голосов
/ 23 февраля 2010

После вызова ваших Cursor.execute*() методов с помощью операторов UPDATE или INSERT вы можете использовать Cursor.rowcount, чтобы увидеть количество строк, затронутых вызовом execute.

Если бы мне пришлось угадывать, я бы сказал, что библиотека Python вызывает int sqlite3_changes(sqlite3*) из C API, но я не смотрел на код, поэтому не могу сказать наверняка.

0 голосов
/ 10 апреля 2018

Допустим таблицу test(rowid, value) следующим образом. (1, '3') (2, «а») После выполнения update test set value = '3' where rowid=1. Cursor.row=1. Я думаю, что это возвращает совпадающую строку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...