Heim >Datenbank >MySQL-Tutorial >Warum erhöht sich die automatische Inkrementierung von MySQL auch bei fehlgeschlagenen Einfügungen mit eindeutigen Einschränkungen?
Frage:
Warum funktioniert die automatische Inkrementierung? Wert in MySQL steigt trotz fehlgeschlagener Einfügungen bei einem eindeutigen Feld existiert?
Erklärung:
InnoDB, die Standard-Engine in MySQL, arbeitet transaktional. Wenn daher mehrere Sitzungen gleichzeitig versuchen, Einfügungen in eine Tabelle mit einer Autoinkrementierungsspalte vorzunehmen, können bestimmte Szenarien auftreten:
Konsequenz:
Wenn eine Einfügung aufgrund einer Verletzung der eindeutigen Feldbeschränkung fehlschlägt, wird der Autoinkrementierungswert trotzdem erhöht, da InnoDB den Autoinkrementierungszähler im Arbeitsspeicher während des gesamten Serverbetriebs verwaltet. Wenn der Server neu startet, setzt InnoDB den Zähler für jede Tabelle beim ersten Einfügen in diese Tabelle zurück.
Abhilfe:
Wenn die Möglichkeit eines ID-Spaltenumbruchs ein Problem darstellt Erwägen Sie die Verwendung eines BIGINT-Datentyps (8 Byte lang), um einen größeren Wertebereich bereitzustellen.
Das obige ist der detaillierte Inhalt vonWarum erhöht sich die automatische Inkrementierung von MySQL auch bei fehlgeschlagenen Einfügungen mit eindeutigen Einschränkungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!