Die automatische Inkrementierung der Primärschlüssel-ID von MySQL erhöht sich nicht schrittweise1. EinleitungWenn Sie Daten zur MySQL-Datenbank hinzufügen und ON DUPLICATE KEY UPDATE zum Aktualisieren der Daten verwenden, wird die ID möglicherweise nicht schrittweise, sondern zeitweise erhöht. Wenn die ID beispielsweise 10 ist, kann sie beim nächsten Hinzufügen 15 oder eine andere Zahl sein. Das Intervall zwischen den beiden Zahlen entspricht der Anzahl der Ausführungen von ON DUPLICATE KEY UPDATE, d. h. ON DUPLICATE KEY UPDATE erhöht den Primärschlüssel der Tabelle beim Ausführen des Updates um eins. Wie in der Abbildung gezeigt 2. Problem EinführungBeim Hinzufügen und Ändern derselben Tabelle habe ich zwei Mapper-Schnittstellenmethoden verwendet, das heißt, ich habe zwei ON DUPLICATE KEY UPDATE-Operationen verwendet, die dazu führen, dass der Primärschlüssel der Tabelle beim Aktualisieren erhöht wird. Beim nächsten Einfügen erfolgt keine schrittweise Erhöhung. 3. LösungTeilen Sie das Einfügen und Aktualisieren der Datenbank auf. Vor- und Nachteile des automatisch inkrementierten PrimärschlüsselsPrimärschlüssel automatisch inkrementierenDiese Methode verwendet das von der Datenbank bereitgestellte Autoinkrement-Zahlenfeld als Autoinkrement-Primärschlüssel. Die Vorteile sind: (1) Die Datenbank wird automatisch nummeriert, schnell und schrittweise erweitert und in der richtigen Reihenfolge gespeichert, was für den Abruf sehr vorteilhaft ist. (2) Digitaltypen, die wenig Platz beanspruchen, leicht zu sortieren sind und sich bequem im Programm übergeben lassen; (3) Wenn Sie Datensätze über ein Nicht-System hinzufügen, müssen Sie dieses Feld nicht angeben und müssen sich keine Gedanken über die Duplizierung des Primärschlüssels machen. Tatsächlich ergeben sich aus den Vorteilen auch die Nachteile. Diese sind wie folgt:(1) Aufgrund des automatischen Wachstums ist es mühsam, einen Datensatz mit einer angegebenen ID manuell einzufügen. Insbesondere wenn das System in andere Systeme integriert ist und ein Datenimport erforderlich ist, ist es schwierig sicherzustellen, dass die ID des ursprünglichen Systems nicht mit dem Primärschlüssel in Konflikt steht (vorausgesetzt, das alte System ist ebenfalls digital). Insbesondere wenn ein neues System gestartet wird, das alte und das neue System parallel existieren und die Datenbanken heterogen sind und eine bidirektionale Synchronisierung erfordern, wird der automatisch inkrementierte Primärschlüssel zu Ihrem Albtraum. (2) Wenn bei einer Systemintegration oder einem Systemumstieg die Primärschlüssel des alten und des neuen Systems unterschiedlich und numerisch sind, wird der Datentyp des Primärschlüssels geändert. Dies führt auch zu Änderungen an anderen mit Fremdschlüsseln verknüpften Tabellen, was ebenso schwerwiegende Folgen hat. (3) Wenn das System auch digital ist, möchten Sie, um beim Importieren zwischen neuen und alten Daten zu unterscheiden, möglicherweise vor dem Primärschlüssel der alten Daten eine Zeichenkennung (z. B. „o“, alt) hinzufügen, um anzuzeigen, dass es sich um alte Daten handelt. Dann steht der automatisch zunehmende digitale Typ vor einer weiteren Herausforderung. Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Das könnte Sie auch interessieren:
|
<<: Verwenden der Outline-Offset-Eigenschaft in CSS zum Implementieren eines Pluszeichens
>>: Implementierung der Master-Slave-Replikation im Docker Compose-Deployment
Was ist ein Speicherleck? Ein Speicherleck bedeut...
Auf Mobilgeräten ist das Flex-Layout sehr nützlic...
Inhaltsverzeichnis 1. Docker-Datei 2. POM-Konfigu...
In diesem Artikelbeispiel wird der spezifische Ja...
Inhaltsverzeichnis 1. Initialisieren Sie das Arra...
Ich habe VMware und Ubuntu neu installiert, aber ...
Inhaltsverzeichnis 1. Konfigurieren Sie Bridging ...
Inhaltsverzeichnis 1. Verwenden Sie JavaScript, u...
Downloadlink: Betriebsumgebung CentOS 7.6 in eine...
Methode 1: Pycharm herunterladen und installieren...
1.vue-Verpackung Hier verwenden wir den Befehl „v...
1. Brigde——Bridge: VMnet0 wird standardmäßig verw...
Vorwort In der Demonstration [IE9-] ist der Farbv...
Ich habe die neueste Version von MySQL 5.7.x heru...
In diesem Artikel wird der spezifische Code von V...