我已经主要用 PHP 构建了我的代码库,并且看到了我可以用 Python 组合起来的东西。我想要解决的一个关键挑战是能够通过 AWS RDS 读取和写入我的 MySQL 数据库。我玩弄了一个使用 pymysql 的脚本,并认为我已经解决了我的问题。我运行一个简短的更新脚本:
usql1 = "UPDATE table_name SET STATE='Georgia', SCORE2='1' WHERE ID=1"
response1 = cursor.execute(usql1)
当我在我的 Python 代码中打印结果时,我看到状态更改为 Georgia,并且
SCORE2
字段更改为 1
。然而,当我在 MySQL Workbench 中刷新表时,什么都没有改变。
为什么当我在我的 Python 脚本中而不是在底层数据库中检索和打印表时,结果会发生变化?这与 pymysql 启动游标的方式有关吗?
谢谢!
当您执行更新时,MySQL 正在隐式启动一个事务。您需要在执行更新后调用
connection.commit()
来提交此事务,以防止事务在您断开连接时自动回滚。