Datenbank mit mehreren SQL-Statements aktualisieren

8

Ich benutze mysql connector.Python 1.0.9 von der MySQL-Seite heruntergeladen.

Ich habe hier eine Beispiel-Tabelle hier

%Vor%

Ich kann eine einzelne SQL-Anweisung wie folgt ausführen.

%Vor%

und alles ist gut und Datenbank wird korrekt aktualisiert.

jetzt, wenn ich versuche, die Datenbank mit mehreren Anweisungen wie folgt zu aktualisieren

%Vor%

Ich bekomme unter Trackback-Fehler

%Vor%

Ich aktualisiere meinen Befehl wie folgt

%Vor%

Jetzt bekomme ich keinen Fehler / Traceback. Aber die Datenbank wird nicht aktualisiert.

Kann mir jemand sagen, wo ich falsch liege?

    
Rao 08.03.2013, 07:09
quelle

3 Antworten

23

Endlich nach langer Recherche zu Dokumentation und Hilfe. Ich könnte das Problem lösen.

Eine for Schleife bei cursor.execute mit multi=True wurde verwendet. Ich weiß nicht, warum wir uns durchschleifen müssen.

%Vor%

Ohne Schleife hat nur cursor.execute(SQL, multi=True) keine Änderungen in der Datenbank vorgenommen.

%Vor%     
Rao 08.03.2013, 09:55
quelle
2

Blick auf die MySQL-Dokumente

  

Wenn multi auf True gesetzt ist, kann execute () mehrere Anweisungen ausführen, die in der Operation-Zeichenfolge angegeben sind. Es gibt einen Iterator zurück, der die Verarbeitung des Ergebnisses jeder Anweisung ermöglicht. Die Verwendung von Parametern funktioniert in diesem Fall jedoch nicht gut und es ist normalerweise eine gute Idee, jede Anweisung einzeln auszuführen.

Das Setzen von multi = True gibt einen Iterator zurück und wenn Sie nur jede Anweisung durchlaufen wollen, funktioniert die andere angebotene Lösung gut:

%Vor%     
Nicholas 30.06.2016 14:44
quelle
0

Haben Sie etwas von Commit vermisst

%Vor%

MySQL-Referenz

    
elrado 08.03.2013 07:12
quelle