Python执行MariaDB的UPDATE查询后数据库无变化如何解决?
代码问题排查结果
你提交的更新代码未生效的核心原因是没有执行事务提交操作,MariaDB Python连接器默认不开启自动提交,所有数据修改操作都需要显式提交后才会真正写入数据库。
修正后代码示例
import mariadb connection= mariadb.connect(user="user1", database="db1", host="ippp" ,password="pass") cursor= connection.cursor() cursor.execute("UPDATE product_options_combinations SET quantity=5944 WHERE item_code ='31628'") # 新增事务提交语句 connection.commit() # 可打印受影响行数确认更新是否命中目标 print(f"实际更新行数:{cursor.rowcount}") cursor.close() connection.close()
其他可能的问题排查点
- 确认WHERE条件匹配有效数据:可先执行SELECT语句查询
item_code ='31628'的记录是否存在,若cursor.rowcount返回值为0,说明没有命中任何记录,自然不会产生数据变更 - 确认账号权限:检查
user1是否拥有db1库下product_options_combinations表的UPDATE权限 - 确认字段类型匹配:如果
item_code是数值类型,条件里的单引号可能导致匹配失败,可以改为WHERE item_code = 31628测试 - 排查锁冲突:如果有其他未提交的事务锁住了目标行,你的更新操作会被阻塞,可通过数据库锁日志排查这类情况
内容的提问来源于stack exchange,提问作者Boxer Robert
相关产品推荐
相关产品推荐

