Kemas Kini MySQL dalam Python: Menangani Kemas Kini Gagal
Apabila melaksanakan pertanyaan kemas kini MySQL dalam skrip Python, seseorang mungkin menghadapi isu di mana arahan kemas kini melaporkan pelaksanaan yang berjaya, tetapi jadual tetap tidak berubah. Untuk membetulkannya, adalah penting untuk memahami konsep urus niaga dan komitmen dalam MySQL.
Transaksi ialah satu set operasi yang dilaksanakan sebagai satu unit. Dalam MySQL, transaksi bermula apabila pertanyaan kemas kini dilaksanakan dan berakhir apabila transaksi dilakukan. Jika transaksi tidak dilakukan, sebarang perubahan yang dibuat semasa transaksi itu tidak kekal dan akan dibuang.
Untuk menangani isu yang diterangkan dalam soalan, langkah yang tiada ialah mengeluarkan arahan komit selepas pertanyaan kemas kini telah dilaksanakan. Arahan komit ini memberitahu pelayan MySQL bahawa semua perubahan yang dibuat dalam urus niaga harus disimpan secara kekal ke pangkalan data.
Coretan kod berikut menunjukkan penggunaan arahan komit:
import MySQLdb dbb = MySQLdb.connect(host="localhost", user="user", passwd="pass", db="database") try: curb = dbb.cursor() curb.execute("UPDATE RadioGroups SET CurrentState=1 WHERE RadioID=11") dbb.commit() # Commit the transaction print("Row(s) were updated :" + str(curb.rowcount)) curb.close() except MySQLdb.Error as e: print("Query failed") print(e)
Oleh termasuk pernyataan dbb.commit(), semua perubahan yang dibuat dalam transaksi, termasuk kemas kini kepada jadual RadioGroups, akan disimpan secara kekal ke pangkalan data.
Atas ialah kandungan terperinci Mengapa Kemas Kini MySQL Saya dalam Python Tidak Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!