Mesej Ralat: "Arahan Tidak Segerak" dalam Python dengan MySQL
Apabila melaksanakan prosedur tersimpan daripada Python melalui Django, pengguna mungkin menghadapi mesej ralat "perintah tidak segerak; anda tidak boleh menjalankan arahan ini sekarang." Isu ini timbul apabila cuba melaksanakan penyataan berikutnya selepas memanggil prosedur, menghalang komitmen transaksi yang berjaya.
Masalah ini tidak terpencil kepada prosedur tersimpan yang kompleks tetapi juga boleh berlaku dengan prosedur yang dipermudahkan. Dalam contoh yang disediakan, memanggil 'cursor.callproc()' diikuti dengan 'cursor.fetchall()' dan 'cursor.execute()' mencetuskan ralat.
Penyelesaian:
Untuk menyelesaikan isu ini, objek kursor mesti ditutup dan dibuka semula sebelum melaksanakan lagi penyataan:
cursor.close() cursor = connection.cursor()
Dengan menutup kursor dan membukanya semula, keadaan sambungan ditetapkan semula, membenarkan arahan seterusnya dilaksanakan tanpa ralat "perintah tidak segerak". Ambil perhatian bahawa set keputusan yang diambil dengan 'fetchall()' kekal boleh diakses selepas menutup kursor.
Atas ialah kandungan terperinci Mengapakah \'perintah tidak segerak\' Berlaku dalam Interaksi MySQL Python dan Bagaimana Ia Boleh Dibetulkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!