2016-11-30 406 views
0

我在循環中遇到PyMySQL數據選擇問題。PyMySQL在循環中選擇數據不是返回所有記錄

  1. XXX表包含一個記錄ID = 1
  2. 我開始腳本

    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() 
    
  3. 雖然我的腳本運行時我打開MySQLWorkbench並插入新記錄的xxx表等ID = 2

  4. 問題:我的腳本不打印新記錄,只是打印id = 1。

如果我重新啓動我的腳本,然後它會選擇新插入的記錄id = 2,但是,如果後來我從MySQLWorkbench插入另一個紀錄是沒有找到它(除非我重新啓動我的腳本)

你能解釋一下從循環中檢索數據庫中的所有記錄?

更新:

我加入autocommit=True參數去連接解決的問題。但是爲什麼我在做select時需要改變呢?這是正常的嗎?

+0

讓我們瞭解一下 「事務隔離級別。」 – methane

回答