Python PyMySQL在循环中选择数据并不是返回所有记录

Python PyMySQL在循环中选择数据并不是返回所有记录,python,mysql,pymysql,Python,Mysql,Pymysql,我在循环中遇到PyMySQL数据选择问题 xxx表包含一个记录id=1 我开始写剧本 import pymysql import time connection = pymysql.connect(host="127.0.0.1", port=3306, user="yyy", passwd="yyy",

我在循环中遇到PyMySQL数据选择问题

  • xxx表包含一个记录id=1
  • 我开始写剧本

    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=1
  • 如果我重新启动脚本,它会选择new inserted record id=2,但如果我从MySQLWorkbench插入另一条记录,它不会找到它(除非我重新启动脚本)

    您能解释一下如何从循环中的数据库中检索所有记录吗

    更新:

    我通过向连接添加
    autocommit=True
    param解决了这个问题。但为什么在执行选择时需要提交更改?这正常吗

    但为什么在执行选择时需要提交更改?这正常吗

    对。这很正常。您必须了解事务隔离级别

    但为什么在执行选择时需要提交更改?这正常吗

    对。这很正常。您必须了解事务隔离级别

    让我们了解“事务隔离级别”。让我们了解“事务隔离级别”