我有几个工作线程需要从数据库中提取行并对其进行处理。尝试进行单个呼叫以显示该行已/正在被检查。我曾希望 cursor.lastrowid 可以工作,但它始终返回零。文档说“此只读属性返回由先前的INSERT或UPDATE语句为AUTO_INCREMENT列生成的值”。该表有两列, id (唯一,自动递增),已选中(整数)。
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
这会更新行,但是 cursor.lastrowid 始终为0。 cursor.rowcount 返回1。检查数据库是否显示受影响的单行。是否有任何已知问题,或者我有什么故障?
编辑:这可能是不可能的。我还没有看到UPDATE可以返回auto_increment值的任何可行示例。也许需要更新文档?