2016-11-30 5 views
0

ループ内のPyMySQLデータ選択に問題があります。PyMySQLでループ内のデータを選択するとすべてのレコードが返されません

  1. xxxのテーブルが1つのレコードID = 1
  2. が含まれている私のスクリプトは、など、私はMySQLWorkbenchを開き、XXXテーブルに新しいレコードを挿入実行している間、私は、スクリプト

    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. を始めていますID = 2

  4. 問題:私のスクリプトでは、id = 1という新しいレコードが印刷されません。

私は私のスクリプトは、それが新しい挿入レコードID = 2を選択したが、私はMySQLWorkbenchから別のレコードを挿入した場合、それは(私は私のスクリプトを再起動しない限り)

あなたはどのように説明することができ、それを見つけることができません再起動した場合ループ内のデータベースからすべてのレコードを取得しますか?

更新:

私は接続にautocommit=Trueのparamを追加することで問題を解決しました。しかし、なぜ私は選択をしているときに変更をコミットする必要がありますか?それは普通ですか?

+0

のが知ろう "トランザクション分離レベル。" – methane

答えて

関連する問題