Die automatische Inkrementierung der Primärschlüssel-ID von MySQL wird auf diese Weise nicht verarbeitet

Die automatische Inkrementierung der Primärschlüssel-ID von MySQL wird auf diese Weise nicht verarbeitet

Die automatische Inkrementierung der Primärschlüssel-ID von MySQL erhöht sich nicht schrittweise

1. Einleitung

Wenn 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ührung

Beim 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ösung

Teilen Sie das Einfügen und Aktualisieren der Datenbank auf.

Vor- und Nachteile des automatisch inkrementierten Primärschlüssels

Primärschlüssel automatisch inkrementieren

Diese 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:
  • Tutorial zum Primärschlüssel in MySQL und zum Einstellen seiner automatischen Inkrementierung
  • Beispiel für die Änderung des Auto-Increment-Primärschlüsseltyps von int zu char in MySQL
  • Lösung für das Ausgehen der Auto-Increment-ID (Primärschlüssel) von MySQL
  • Was tun, wenn der Auto-Increment-Primärschlüssel in MySQL aufgebraucht ist?
  • Neue Funktionen von MySQL 8: Detaillierte Erklärung der Persistenz des automatisch inkrementierten Primärschlüssels
  • Beispielanalyse der Verwendung der Selbstinkrementierung von MySQL-Nichtprimärschlüsseln
  • Detaillierte Erläuterung der Implementierung des MySQL-Autoinkrements des Primärschlüssels
  • Warum ist der MySQL-Autoinkrement-Primärschlüssel nicht kontinuierlich?

<<:  Verwenden der Outline-Offset-Eigenschaft in CSS zum Implementieren eines Pluszeichens

>>:  Implementierung der Master-Slave-Replikation im Docker Compose-Deployment

Artikel empfehlen

Vue: Detaillierte Erklärung von Speicherlecks

Was ist ein Speicherleck? Ein Speicherleck bedeut...

JavaScript implementiert kreisförmigen Fortschrittsbalkeneffekt

In diesem Artikelbeispiel wird der spezifische Ja...

24 praktische Tipps zur JavaScript-Entwicklung

Inhaltsverzeichnis 1. Initialisieren Sie das Arra...

So ändern Sie das Terminal in Ubuntu 18 in eine schöne Eingabeaufforderung

Ich habe VMware und Ubuntu neu installiert, aber ...

Einführung in RHCE-Bridging, passwortfreie Anmeldung und Portnummernänderung

Inhaltsverzeichnis 1. Konfigurieren Sie Bridging ...

Drei Möglichkeiten zum Parsen von QR-Codes mit Javascript

Inhaltsverzeichnis 1. Verwenden Sie JavaScript, u...

So installieren Sie den Apache-Dienst im Linux-Betriebssystem

Downloadlink: Betriebsumgebung CentOS 7.6 in eine...

Implementierung des Pycharm-Installationstutorials auf Ubuntu 18.04

Methode 1: Pycharm herunterladen und installieren...

Beispielcode zum Erstellen von Desktop-Anwendungen mit Vue + Electron

1.vue-Verpackung Hier verwenden wir den Befehl „v...

Drei Netzwerkmethoden und Prinzipien von virtuellen VMware-Maschinen (Zusammenfassung)

1. Brigde——Bridge: VMnet0 wird standardmäßig verw...

Vue implementiert Drag & Drop oder Klicken zum Hochladen von Bildern

In diesem Artikel wird der spezifische Code von V...