Mysql
 sql >> Database >  >> RDS >> Mysql

Le query MySQL ripetute da Python restituiscono gli stessi dati

È necessario eseguire il commit della connessione dopo ogni query. Ciò conferma la transazione corrente e garantisce che la transazione successiva (implicita) rilevi le modifiche apportate mentre la transazione precedente era attiva.

# 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)

Il concetto qui è livelli di isolamento. Dai documenti (sottolineatura mia):