У меня есть несколько рабочих потоков, которые должны извлекать строки из базы данных и работать с ними.Попытка сделать один вызов, который показывает, что строка имеет / проверяется.Я надеялся, что cursor.lastrowid будет работать, но он всегда возвращает ноль.Документы говорят: «Это свойство только для чтения возвращает значение, сгенерированное для столбца AUTO_INCREMENT предыдущим оператором INSERT или UPDATE».Таблица имеет два столбца: id (уникальный, автоинкремент) проверено (int).
cursor.execute('UPDATE the_table SET checked = 1 WHERE checked = 0 LIMIT 1')
mysql.commit()
id = cursor.lastrowid
print(id) #returns 0 not last id
Это обновляет строку, но курсор .lastrowid всегда равен 0. cursor.rowcount возвращает 1. Проверка базы данных показывает одну строку, на которую влияют.Есть какие-либо известные проблемы или, возможно, у меня что-то не так?
РЕДАКТИРОВАТЬ: Это может быть невозможно.Я не видел ни одного рабочего примера, где UPDATE может возвращать значение auto_increment.Возможно, документы должны быть обновлены?