Sha*_*hay 11 python mysql sql-update pymysql
我一直在尝试使用PyMysql,到目前为止我所做的一切(选择/插入),但是当我尝试更新它只是不起作用,没有错误没有什么,只是没有做任何事情.
import pymysql
connection = pymysql.connect(...)
cursor = connection.cursor()
cursor.execute("UPDATE Users SET IsConnected='1' WHERE Username='test'")
cursor.close()
connection.close()
是的我已经仔细检查过Users,IsConnected和Username都是正确的并且测试确实存在(SELECT适用于它)
这是我的问题?
saa*_*aaj 14
事实上,@ JoeDay上面描述的内容与默认的MySQL事务的行为没什么关系.默认情况下,MySQL在自动提交模式下运行,通常您不需要任何额外的扭曲来保持更改:
默认情况下,MySQL在启用自动提交模式的情况下运行.这意味着只要执行更新(修改)表的语句,MySQL就会将更新存储在磁盘上以使其永久化.无法回滚更改.
PEP-249(DB API)的作者决定通过提出默认禁用自动提交来使事务的开始隐式,从而使事情变得复杂并破坏Python的Zen.
我建议做的是恢复MySQL的默认行为.并且仅在您需要时明确使用事务.
import pymysql
connection = pymysql.connect(autocommit=True)
我也在这里写了一些参考资料.