我在循环中遇到PyMySQL数据选择问题。
我正在启动脚本
import pymysql
import time
connection = pymysql.connect(host="127.0.0.1",
port=3306,
user="yyy",
passwd="yyy",
db="yyy",
charset='utf8',
cursorclass=pymysql.cursors.DictCursor)
while True:
with connection.cursor() as cursor:
sql = "select * from xxx"
cursor.execute(sql)
result = cursor.fetchall()
print result
time.sleep(5)
connection.close()
当我的脚本运行时,我打开MySQLWorkbench并将新记录插入xxx表等.id = 2
如果我重新启动我的脚本然后它选择新插入的记录id = 2,但如果那时我从MySQLWorkbench插入另一条记录它找不到它(除非我重新启动我的脚本)
您能解释一下如何从循环数据库中检索所有记录吗?
更新
我通过向连接添加autocommit=True
param解决了问题。但是为什么我在做select时需要提交更改?这是正常的吗?
答案 0 :(得分:1)
但是为什么我在做select时需要提交更改?这是正常的吗?
是。这是正常的。您必须学习事务隔离级别。