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
Inhaltsverzeichnis 1. Container-Service-Update un...
Problembeschreibung Auf der Anmeldeseite des Proj...
Effektbild: Implementierungscode: <Vorlage>...
Vorwort Für Produktions-VPS mit öffentlicher IP w...
Ohne weitere Umschweife werde ich den Code direkt...
1. Grundlegende Grammatik Code kopieren Der Code ...
Inhaltsverzeichnis 1. Funktion Entprellung 1. Was...
MySQL führt SQL durch den Prozess der SQL-Analyse...
Aufgrund der zunehmenden Anzahl von Schaltflächen...
Vorwort Was ist Datentypkonvertierung? Der Standa...
1. Einführung in mysqldump mysqldump ist ein logi...
Vor Kurzem habe ich mit shake.js eine ähnliche Fu...
Ob das Mapping der Mausposition oder das Implemen...
1. Einleitung WHMCS bietet eine Komplettlösung fü...
1. Einleitung: Ich denke, dass die Änderungen nac...