Rumah > pangkalan data > tutorial mysql > Mengapa Pertanyaan MySQL Python Saya Terus Mengembalikan Data Yang Sama?

Mengapa Pertanyaan MySQL Python Saya Terus Mengembalikan Data Yang Sama?

Linda Hamilton
Lepaskan: 2024-11-06 12:29:02
asal
681 orang telah melayarinya

Why Does My Python MySQL Query Keep Returning the Same Data?

Pertanyaan tentang MySQL daripada Python Menghasilkan Data Identical

Menyiasat pangkalan data MySQL daripada Python untuk mendapatkan semula data dinamik menimbulkan cabaran. Adalah diketahui bahawa hanya mengulangi pertanyaan dalam gelung tidak mencukupi untuk mengambil data baharu daripada pangkalan data.

Kod yang anda berikan menunjukkan isu ini:

<code class="python">for i in range(listSize):
    #...
    mycursor = mydb.cursor(dictionary=True)
    mycursor.execute(sql)
    #...</code>
Salin selepas log masuk

Walaupun dengan percubaan menggunakan fetchall , fetchmany dan fetchone, keputusan tetap tidak berubah.

Penyelesaian: Melakukan Sambungan

Untuk menyelesaikannya, setiap pelaksanaan pertanyaan mesti diikuti dengan komitmen sambungan. Tindakan ini menamatkan transaksi yang sedang berjalan dan memulakan transaksi baharu, membolehkan pertanyaan seterusnya mengesan perubahan yang dibuat semasa transaksi sebelumnya.

<code class="python">while True:
    #...
    mycursor = mydb.cursor(dictionary=True)
    mycursor.execute(sql)
    #...
    mydb.commit()
    #...</code>
Salin selepas log masuk

Tahap Pengasingan dan Lalai BACA YANG BOLEH DIULANG

Konsep ini berakar pada tahap pengasingan. Secara lalai, MySQL menggunakan REPEATABLE READ untuk InnoDB. Ini menunjukkan bahawa dalam urus niaga, bacaan seterusnya akan mengekalkan syot kilat yang ditetapkan oleh bacaan awal transaksi. Oleh itu, tanpa melakukan, pertanyaan berikutnya tidak akan menangkap sebarang perubahan.

Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL Python Saya Terus Mengembalikan Data Yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan