Python操作AWS RDS更新脚本未生效,查询显示修改但数据库无变化
问题原因与解决方法
核心原因:pymysql默认关闭自动提交事务(
autocommit=False),执行UPDATE语句后,修改仅在当前Python数据库连接的事务内可见,未同步到底层数据库,所以Workbench(独立的数据库连接)看不到变化。解决方法:
- 手动提交事务:执行完UPDATE后调用连接对象的
commit()方法,将修改同步到数据库usql1 = "UPDATE table_name SET STATE='Georgia', SCORE2='1' WHERE ID=1" response1 = cursor.execute(usql1) # 提交事务 conn.commit() - 开启自动提交:初始化数据库连接时设置
autocommit=True,后续执行修改语句会自动提交import pymysql # 初始化连接时开启自动提交 conn = pymysql.connect( host='你的RDS地址', user='数据库用户名', password='数据库密码', database='目标数据库名', autocommit=True ) cursor = conn.cursor()
- 手动提交事务:执行完UPDATE后调用连接对象的
和游标初始化的关系:通常与游标类型无关。除非你使用了
SSCursor这类特殊的服务器端游标,但这类场景下核心问题依然是事务未提交,而非游标本身。
内容的提问来源于stack exchange,提问作者user1120540
相关产品推荐
相关产品推荐

