Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan MySQL Saya daripada Python Mengembalikan Keputusan Tidak Konsisten?
Pertanyaan MySQL daripada Python Menghasilkan Inkonsistensi
Pertanyaan anda berkemungkinan tidak mendapatkan semula data yang paling terkini kerana anda tidak melakukan perubahan kepada pangkalan data. Secara lalai, MySQL menetapkan tahap pengasingan kepada "BACA BOLEH DIULANG", yang bermaksud pertanyaan seterusnya dalam transaksi yang sama melihat petikan data awal dan bukannya sebarang perubahan yang dibuat semasa transaksi.
Untuk memastikan data anda siap. -sehingga kini, anda perlu melakukan sambungan selepas setiap pertanyaan. Ini melengkapkan transaksi semasa dan menyediakan transaksi seterusnya untuk mengambil perubahan terbaharu daripada pangkalan data.
Berikut ialah versi kod anda yang dikemas kini dengan komitmen yang diperlukan:
<code class="python"># 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 changes! mydb.commit() print("---") sleep(0.1)</code>
Dengan pengubahsuaian ini , kod anda kini akan mendapatkan semula data terkini daripada pangkalan data semasa setiap gelung pertanyaan.
Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL Saya daripada Python Mengembalikan Keputusan Tidak Konsisten?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!