Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wiederholte MySQL-Abfragen von Python geben die gleichen Daten zurück

Sie müssen die Verbindung nach jeder Abfrage festschreiben. Dadurch wird die aktuelle Transaktion festgeschrieben und sichergestellt, dass die nächste (implizite) Transaktion Änderungen übernimmt, die vorgenommen wurden, während die vorherige Transaktion aktiv war.

# Main loop
while True:

    # SQL query
    sql = "SELECT * FROM table"

    # Read the database, store as a dictionary
    mycursor = mydb.cursor(dictionary=True)
    mycursor.execute(sql)

    # Store data in rows
    myresult = mycursor.fetchall()

    # Transfer data into list
    for row in myresult:
        myList[int(row["rowID"])] = (row["a"], row["b"], row["c"])

        print(myList[int(row["rowID"])])

    # Commit !
    mydb.commit()
    print("---")
    sleep (0.1)

Das Konzept hier ist Isolationsstufen. Aus den Dokumenten (Hervorhebung von mir):