Python MySQL: Behebung des Fehlers „Befehle nicht synchron“ beim Ausführen gespeicherter Prozeduren
In der Python-Programmierung, wenn Django zum Ausführen gespeicherter Prozeduren verwendet wird Innerhalb einer MySQL-Datenbank stoßen einige Benutzer beim Ausführungsversuch auf die Fehlermeldung „Befehle sind nicht synchron; Sie können diesen Befehl jetzt nicht ausführen“. Nachfolgende Anweisungen nach dem Aufruf einer Prozedur.
Dieser Fehler tritt normalerweise auf, wenn versucht wird, eine Nicht-Auswahlanweisung (z. B. eine Aktualisierungs- oder Löschoperation) nach dem Prozeduraufruf auszuführen, ohne eine Commit-Aktion auszuführen.
Betrachten Sie das folgende Codebeispiel:
cursor.callproc('my_mysql_procedure', [some_id,]) result = cursor.fetchall() for r in result: do something cursor.execute("select * from some_table") result = cursor.fetchall()
Nach der Ausführung der gespeicherten Prozedur wird die Verbindung „nicht synchron“, wenn nicht ausgewählte Vorgänge ohne vorheriges Schließen versucht werden und erneutes Öffnen des Cursors.
Um dieses Problem zu beheben, wird empfohlen, den Cursor unmittelbar nach dem Abrufen der Ergebnisse aus der gespeicherten Prozedur zu schließen:
cursor.close() cursor = connection.cursor()
Das erneute Öffnen eines neuen Cursors stellt sicher Stellen Sie sicher, dass die Verbindung ordnungsgemäß zurückgesetzt und synchronisiert wird, sodass nachfolgende Anweisungen wie vorgesehen ausgeführt werden können. Es ist wichtig zu beachten, dass der aus dem Prozeduraufruf erhaltene Ergebnissatz auch nach dem Schließen des Cursors zugänglich bleibt.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Befehle nicht synchron' bei der Verwendung gespeicherter Python- und MySQL-Prozeduren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!