Rumah  >  Artikel  >  pangkalan data  >  Mengapa Pertanyaan MySQL Berulang Saya Tidak Mengembalikan Data Terkini?

Mengapa Pertanyaan MySQL Berulang Saya Tidak Mengembalikan Data Terkini?

Susan Sarandon
Susan Sarandonasal
2024-11-11 03:10:021004semak imbas

Why Are My Repeated MySQL Queries Not Returning the Latest Data?

Pertanyaan MySQL Berulang Tidak Mengembalikan Data Terkini: Menyelesaikan Isu Melalui Komit Transaksi

Dalam Python, sambil berulang kali menanyakan pangkalan data MySQL yang berubah dengan pantas, adalah penting untuk memastikan bahawa setiap pertanyaan mendapatkan semula data yang paling terkini. Walau bagaimanapun, sesetengah mungkin menghadapi isu di mana pertanyaan seterusnya mengembalikan data yang sama walaupun pangkalan data mengalami perubahan. Ini disebabkan oleh tahap pengasingan asas sambungan pangkalan data.

Konsep tahap pengasingan menentukan cara transaksi diasingkan antara satu sama lain. Dalam kes tahap pengasingan lalai MySQL, BACA BERULANG, setiap pertanyaan dalam transaksi yang sama bergantung pada petikan pangkalan data yang diambil pada permulaan transaksi. Ini bermakna pertanyaan berikutnya tidak akan menggambarkan sebarang perubahan pangkalan data yang dibuat semasa transaksi itu aktif.

Untuk menyelesaikan isu ini, adalah penting untuk melakukan sambungan selepas setiap pertanyaan. Ini memulakan transaksi baharu dan memastikan pertanyaan seterusnya beroperasi pada petikan pangkalan data terkini. Berikut ialah contoh:

<code class="python">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)</code>

Dengan melakukan selepas setiap pertanyaan, sambungan mewujudkan urus niaga baharu, memastikan setiap pertanyaan berikutnya akan membaca petikan pangkalan data terkini, dengan itu mencerminkan perubahan pangkalan data terkini. Ini menyelesaikan masalah pertanyaan berulang secara konsisten mengembalikan data lapuk.

Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL Berulang Saya Tidak Mengembalikan Data Terkini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn