python - MySQL 表为空,即使它已通过 Python 填充
问题描述
我编写了一个 python 脚本来通过 excel 数据填充 MySQL 表。在 Python 脚本结束时,我打印出表格的内容:
mycursor.execute("SELECT * FROM Cities")
rows=mycursor.fetchall()
for r in rows:
print r
我得到了正确的结果:
(1, u'Muenchen', 2.0, 3.32, 1, 1)
(2, u'Augsburg', 0.7, 1.008, 1, 1)
(3, u'Frankfurt', 1.1, 1.694, 1, 2)
(4, u'Wiesbaden', 0.3, 0.405, 1, 2)
但是当我通过 MySQL Workbench 打开表时,它是空的。通过常规终端,我得到相同的结果:
mysql> SELECT * FROM Cities;
Empty set (0.00 sec)
有什么问题?
解决方案
你需要COMMIT
改变
此方法向 MySQL 服务器发送 COMMIT 语句,提交当前事务。由于默认情况下,Connector/Python 不会自动提交,因此在每个修改使用事务存储引擎的表的数据的事务之后调用此方法很重要。
>>> cursor.execute("INSERT INTO employees (first_name) VALUES (%s)", ('Jane'))
>>> cnx.commit()
>>> cnx.close()
推荐阅读
- java - 如何在 Java REST API 中向 GetMapping 添加逻辑
- ms-access-2013 - 访问更新 SQL
- android - IllegalStateException:片段
不与片段管理器关联 - c# - PostSharp:仅包含一些类或一些方法
- java - 复合 UniqueConstraint 上的级联更新 ConstraintViolationException
- python - Python selenium 代码似乎在调用显示模式对话框的 javascript 后等待
- swift - SwiftUI swizzling 默认禁用,手机身份验证不起作用
- css - 为什么我的图像在容器内无法正确调整大小
- json - 如何将powershell json响应转换为csv
- c - 访问结构的 char 属性