Следуя документации для rowcount , я смогу узнать, сколько строк было обновлено с помощью запроса UPDATE, например,
>>> cur = conn.cursor()
>>> cur.execute(
'UPDATE users SET current_session_active=%(current_session_active)s WHERE users.id = %(id_1)s AND users.app = %(app_1)s',
{'current_session_active': False, 'id_1': '884492906', 'app_1': 'Telegram'}
)
>>> cur.rowcount
1
Я понимаю cur.rowcount
= 1 как " В выбранной строке для поля current_session_active
установлено значение True, а теперь вы обновили его до False ". Я запутываюсь, когда повторяю запрос, и получаю одно и то же значение для cur.rowcount
>>> cur = conn.cursor()
>>> cur.execute(
'UPDATE users SET current_session_active=%(current_session_active)s WHERE users.id = %(id_1)s AND users.app = %(app_1)s',
{'current_session_active': False, 'id_1': '884492906', 'app_1': 'Telegram'}
)
>>> cur.rowcount
1
>>> cur.execute(
'UPDATE users SET current_session_active=%(current_session_active)s WHERE users.id = %(id_1)s AND users.app = %(app_1)s',
{'current_session_active': False, 'id_1': '884492906', 'app_1': 'Telegram'}
)
>>> cur.rowcount
1
Поскольку эти два UPDATE идентичны, я ожидаю, что у второго будет cur.rowcount = 0 , поскольку данные уже были обновлены в первый раз, и во второй раз обновлять нечего. Почему я получаю cur.rowcount = 1 во второй (и n-й) раз?