Dies ist ein Problem, das mir bekannt ist, aber ich wäre fast in die Falle getappt (ich hätte es fast vergessen, aber zum Glück fiel es mir ein, als ich die Online-Punkte sortierte, bevor ich online ging), deshalb habe ich es hier speziell aufgezeichnet Warum die Auto-Inkrement-ID aktualisieren?Ich musste aufgrund historischer Geschäftsprobleme eine Reihe von IDs aktualisieren und um Konflikte zu vermeiden, musste ich die IDs für die Aktualisierung mehrmals erweitern. Da die Datenmenge in meiner Tabelle nicht groß ist, handelt es sich um eine Situation mit vielen Lese- und wenigen Schreibvorgängen, also habe ich sie einfach um 1000 erweitert. Frage Wenn wir in MySQL den Autoinkrement-Primärschlüssel auf einen größeren Wert aktualisieren (z. B. der Maximalwert der Autoinkrement-ID ist 1000 und Sie aktualisieren den Datensatz mit ID = 49 auf ID = 1049), ändert MySQL den Autoinkrement-Wert der Tabelle nicht auf den aktualisierten Wert. In einigen Fällen, z. B. nach DDL, Neustart usw., beginnt das Unternehmen, Fehler zu melden. Wenn Sie zu diesem Zeitpunkt den aktuellen Vorgang nicht kennen, denken Sie möglicherweise fälschlicherweise, dass es sich um ein Problem mit dem aktuellen Geschäftsvorgang handelt. Tatsächlich liegt es an der durch die Aktualisierungs-ID vergrabenen Grube (Primärschlüsselkonflikt). Abbildung 1: Originaldaten vor dem Update Update-Anweisung ausführen Testsatz-ID aktualisieren = 10, wobei ID = 2; Abbildung 2: Aktualisierte Daten Führen Sie eine neue Insert-Anweisung aus Test(name)werte einfügen ('dddd') Abbildung 3: Neue Daten eingefügt Ich glaube, jeder hat das Problem zu diesem Zeitpunkt gesehen. Zu Beginn nach dem Update gibt es möglicherweise kein Problem, aber wenn die selbstinkrementierende ID den von Ihnen aktualisierten Maximalwert erreicht, ist ein ID-Konflikt unvermeidlich. . . Wie man es löst 1. Wenn es sich um eine persönliche Testbibliothek handelt, ist dies nicht wichtig. Sie können die Datenbank neu starten Testwerte (ID, Name) einfügen (20, 'eeee'); Nach dem Betrieb, wie in der Abbildung dargestellt: Führen Sie die folgende SQL-Anweisung aus und vergleichen Sie die Ergebnisse Testwerte (Name) einfügen ('ffff'); An diesem Punkt hat die Auto-Inkrement-ID begonnen, vom Maximalwert aus anzusteigen. Nachdem ich nach Informationen gesucht hatte, stellte ich fest, dass dieser Fehler bereits 2005 auftrat, jedoch aufgrund der Leistung und einiger Szenarien nicht behoben wurde. In MySQL 8.0.11 tritt dieses Problem normal auf. Dies ist das Ende dieses Artikels über die Probleme, die beim Aktualisieren der automatisch inkrementierten Primärschlüssel-ID durch MySQL auftreten. Weitere relevante Inhalte zum Aktualisieren der automatisch inkrementierten Primärschlüssel-ID durch MySQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: HTML-Tabelle_Powernode Java Academy
>>: CSS Transition erweitert und reduziert Elemente durch Ändern der Höhe
1. Node-Server einrichten + Datenbankverbindung D...
Der Befehl „Docker Exec“ kann Befehle in einem la...
MySQL-Installationstutorial für Windows-Systeme h...
In der MySQL-Dokumentation können MySQL-Variablen...
1. Die Verwendung von Docker Compose ist der Verw...
1. Herunterladen und installieren Laden Sie die D...
1. Qualitative Änderungen durch CSS-Variablen Die...
<br />Im ersten Abschnitt dieser Reihe haben...
Inhaltsverzeichnis Kurze Analyse des MySQL Master...
Inhaltsverzeichnis Vorwort Text 1. Installieren S...
Inhaltsverzeichnis Strukturelle Vererbung (implem...
Die Optimierung großer Datenbankdatenmengen ist e...
Beispielsweise gibt es ein Eingabefeld <el-Ein...
Dieser Artikel stellt ein möglichst einfaches Fra...
Dies ist das erste Mal, dass ich das CentOS7-Syst...