Warnung: Unsichere Anweisung, die im Anweisungsformat seit BINLOG_FORMAT = STATEMENT in das Binärprotokoll geschrieben wurde

8

Vollständiger Fehler:

%Vor%

Ich bekomme diesen Fehler anscheinend nur, wenn ich versuche, Raw-SQL von Django auszuführen. Wenn ich SQL vom MySQL CLI Client aus starte, bekomme ich nicht den gleichen Fehler. Hier ist das SQL:

%Vor%

Dies dient dazu, die Datensätze anzuordnen und eine fortlaufende Nummer auf das Gewicht anzuwenden, um diese Reihenfolge in der Datenbank zu erhalten.

Ich habe versucht, diesen Befehl innerhalb des Clients auszuführen, um zu sehen, ob ich das Problem replizieren kann, es aber trotzdem erfolgreich ausgeführt wird:

%Vor%

Außerdem ist es wichtig, dass ich das SQL entweder löse oder umschreibe, um mit dieser Einschränkung zu arbeiten, da die endgültige Anwendung höchstwahrscheinlich über eine Master-Slave-Datenbank läuft.

* BEARBEITEN: Nachdem wir etwas mehr binlog_format gelesen haben, scheint es, als wäre ROW oder MIXED vollkommen akzeptabel, aber mein Hauptanliegen ist nicht in der Lage, dieses Problem in der MySQL CLI zu replizieren, um zu testen, ob MIXED / ROW kann dieses Problem tatsächlich lösen?

    
DanH 12.06.2013, 04:17
quelle

1 Antwort

8

Es gibt keine Möglichkeit, die SQL neu zu schreiben, um diese Fehlermeldung nicht zu werfen. Jede Art von Befehl wird diese Nachricht werfen, da der Slave möglicherweise andere Zeilen als der Master hat. mixed löst es, da es nur auf row -basierte Replikation umschaltet, wenn eine Anweisung nicht sicher mit statement repliziert werden kann.

    
kormoc 12.06.2013, 04:38
quelle

Tags und Links