Kurz gesagt, ich habe eine SQL-Datei, die ich als Stildatei importieren möchte. skelDies wird also wiederholt programmgesteuert durchgeführt. Ich kann die SQL-Datei bearbeiten, wie ich möchte, aber ich möchte die Anwendung selbst lieber nicht berühren.
Diese Anwendung verwendet userid = 0, um den anonymen Benutzer darzustellen. Es hat auch einen relevanten (leeren) Eintrag in der Datenbank, um diesen 'Benutzer' darzustellen. Daher skel.sqlsieht die Zeile in meinem ungefähr so aus:
INSERT INTO `{{TABLE_PREFIX}}users` VALUES (0, '', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, 0, NULL, '', '', '', NULL);
Das Problem dabei ist, dass uides sich um ein auto_incrementFeld handelt, für das technisch gesehen 0ein ungültiger Wert vorliegt. Oder zumindest, wenn Sie es auf 0 setzen, sagen Sie MySQL im Grunde: "Bitte geben Sie die nächste ID in dieses Feld ein."
Nun, ich nehme an, ich könnte INSERTeine UPDATEAbfrage in meine SQL-Datei einfügen, aber gibt es eine Möglichkeit, MySQL im Allgemeinen mitzuteilen, dass ich tatsächlich 0in dieses Feld einfügen möchte ?
sql_modeEine durch Kommas getrennte Liste von Flags. Wenn Sie dies tunsql_mode='NO_AUTO_VALUE_ON_ZERO', können Sie versehentlich andere Flags deaktivieren