Beheben Sie das Problem, dass die Lese-/Schreibtrennung von MySQL dazu führt, dass Daten nach dem Einfügen nicht ausgewählt werden

Beheben Sie das Problem, dass die Lese-/Schreibtrennung von MySQL dazu führt, dass Daten nach dem Einfügen nicht ausgewählt werden

MySQL richtet eine unabhängige Schreibtrennung ein. Wenn Sie Folgendes in den Code schreiben, können Probleme auftreten

//Geben Sie zuerst this.insert(obj); ein. 
// Erneut abfragen Object res = this.selectById(obj.getId());
res: null;

Eine Online-Stolperfalle: Nach der Lese-/Schreibtrennung gibt es ein Szenario, in dem Sie die Methode wiederverwenden und nur eine ID übergeben möchten. Sie können ein Objekt zur nachfolgenden Verarbeitung direkt in der Datenbank finden. Infolgedessen können Sie es nicht finden. Verschiedene Transaktionsisolationsebenen wurden überprüft. Schließlich wurde festgestellt, dass es sich um ein Problem der Lese-/Schreibtrennung handelt. Ändern Sie daher die Idee, um es umzusetzen.

Zusätzliches Wissen: Beurteilung der Einfügebedingung für MySQL INSERT: Einfügen, wenn es nicht vorhanden ist

Wir müssen in SQL häufig Batch-Einfügungen durchführen, die Folgendes erfordern: Wenn der Datensatz nicht existiert, fügen Sie ihn ein; wenn er existiert, fügen Sie ihn nicht ein. Wie wäre es mit der Verwendung einer INSERT-Anweisung?

Wenn wir beim normalen INSERT-Einfügen sicherstellen möchten, dass keine doppelten Datensätze eingefügt werden, können wir nur eine eindeutige Einschränkung für ein bestimmtes Feld erstellen.

Gibt es eine Lösung, die keine eindeutige Einschränkung erstellt und mit nur einer INSERT INTO-Anweisung erreicht werden kann?

Antwort: Verwenden Sie INSERT INTO IF EXISTS. Die spezifische Syntax lautet wie folgt

INSERT INTO Tabelle(Feld1, Feld2, Feldn) 
SELECT 'Feld1', 'Feld2', 'Feldn' 
VON DUAL
WO NICHT EXISTIERT (SELECT-Feld AUS Tabelle, WO Feld = ?)

Beispiel:

INSERT INTO a (Bestell-ID, Betreiber, Operateurdatum, Memo) 
Wählen Sie '3', 'onion3', '2017-11-28', 'Test 3' 
von DUAL 
wo nicht existiert (wählen Sie order_id aus einem where-Operator = „onion3“ und Memo = „测试3“);

Der obige Artikel zur Lösung des Problems, dass Daten nach dem Einfügen aufgrund der Trennung von Lesen und Schreiben in MySQL nicht ausgewählt werden können, ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen, und ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • Eine kurze Diskussion zur MySQL-Select-Optimierungslösung
  • MySQL-Beispiel-Tutorial: Ergebnisse auswählen, um ein Update durchzuführen
  • Wie die MySQL Select-Anweisung ausgeführt wird
  • Detailliertes Beispiel zur Verwendung der distinct-Methode in MySQL
  • Sollte ich zum Entfernen von Duplikaten in MySQL „distinct“ oder „group by“ verwenden?
  • Der Unterschied zwischen distinct und group by in MySQL
  • Lassen Sie uns ausführlich über die LIMIT-Anweisung in MySQL sprechen
  • Tutorial der MySQL-Reihe zum Verständnis der Verwendung der Schlüsselwörter „union“ (alles), „limit“ und „exists“
  • Die Auswirkungen des Limits auf die Abfrageleistung in MySQL
  • Verwendung von „Select“, „Distinct“ und „Limit“ in MySQL

<<:  Implementierung eines einfachen Whack-a-Mole-Spiels in JavaScript

>>:  Nach dem Docker-Lauf ist der Status immer „Beendet“

Artikel empfehlen

So reduzieren Sie die Bildgröße mithilfe des mehrstufigen Docker-Builds

In diesem Artikel wird beschrieben, wie Sie die m...

Untersuchung der Eingabetastenfunktion vom Typ „Datei“

<br />Beim Hochladen auf manchen Websites wi...

So erstellen Sie eine Ansicht für mehrere Tabellen in MySQL

Erstellen Sie in MySQL eine Ansicht für zwei oder...

Tutorial zu HTML-Tabellen-Tags (27): Zell-Hintergrundbild-Attribut BACKGROUND

Wir können ein Hintergrundbild für die Zelle fest...

Detaillierter Prozess zum Erstellen von mysql5.7.29 unter Centos7 von Linux

1. MySQL herunterladen 1.1 Download-Adresse https...

So deinstallieren Sie MySQL 5.7 unter CentOS7

Überprüfen Sie, was in MySQL installiert ist grep...

Eine kurze Einführung in MySQL InnoDB ReplicaSet

Inhaltsverzeichnis 01 Einführung in InnoDB Replic...

Installation und Verwendung von MySQL unter Ubuntu (allgemeine Version)

Unabhängig von der verwendeten Ubuntu-Version ist...

Zusammenfassung der gebräuchlichen Buchstaben in Unicode

Die meisten der ersten Computer konnten nur ASCII...

Vue implementiert Pulldown, um mehr zu laden

Entwickler, die mit Element-UI vertraut sind, hab...