Frage:
Beim programmgesteuerten Importieren einer SQL-Datei wird eine Tabelle angezeigt enthält ein auto_increment-Feld mit dem Namen „uid“, das für einen anonymen Benutzer auf 0 gesetzt ist. Allerdings behandelt MySQL 0 als ungültigen Wert für die automatische Inkrementierung. Wie kann dieses Problem gelöst werden, ohne die Anwendung zu ändern?
Antwort:
Damit MySQL 0 als gültigen Wert für die automatische Inkrementierung akzeptiert, können Sie „NO_AUTO_VALUE_ON_ZERO“ deaktivieren " SQL-Modus mit dem folgenden Befehl:
<code class="sql">SET [GLOBAL|SESSION] sql_mode='NO_AUTO_VALUE_ON_ZERO'</code>
Auswirkungen:
Diese Einstellung ändert das Verhalten von MySQL, sodass ein INSERT- oder UPDATE-Befehl nicht interpretiert wird eine ID von 0 als nächste Sequenz-ID. Stattdessen wird die ID als Nullwert behandelt.
Achtung:
Die Verwendung dieser Methode zur Umgehung des Standardverhaltens von MySQL wird im Allgemeinen als schlechtes Anwendungsdesign angesehen. Es ist wichtig sicherzustellen, dass die ID konsistent verwendet wird, insbesondere wenn Sie die Replikation in Zukunft planen.
Begründung:
Der Modus „NO_AUTO_VALUE_ON_ZERO“ wird empfohlen für bestimmte Anwendungsfälle, in denen es gewünscht ist, Nullwerte in Felder mit automatischer Inkrementierung einzufügen, ohne den nächsten Sequenzwert zu überschreiben. Durch Deaktivieren dieses Modus können Sie den spezifischen Anforderungen der Anwendung gerecht werden, ohne Änderungen am Code vorzunehmen.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Nullwerten in MySQL-Auto-Inkrement-Feldern während des Imports um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!