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

Eine kurze Diskussion über Browserkompatibilitätsprobleme in JavaScript

Die Browserkompatibilität ist der wichtigste Teil...

Verwenden von JavaScript-Unterschieden zum Implementieren eines Vergleichstools

Vorwort Bei der Arbeit muss ich jede Woche die vo...

Installation von Docker CE auf Ubuntu

Dieser Artikel dient zur Aufzeichnung der Install...

So verwenden Sie den Linux-Befehl nl

1. Befehlseinführung nl (Anzahl der Zeilen) fügt ...

Aufzeichnungen zur Verwendung von SSH-Befehlen unter Windows 8

1. Öffnen Sie die virtuelle Maschine und das Git-...

Einführung in die Vue3 Composition API

Inhaltsverzeichnis Überblick Beispiel Warum wird ...

Vue implementiert QR-Code-Scanfunktion (mit Stil)

brauchen: Verwenden Sie Vue, um das Scannen von Q...

Methode zum Erstellen eines Redis-Clusters basierend auf Docker

Laden Sie das Redis-Image herunter Docker-Pull yy...

Reagieren Sie mit Beispielcode zur Implementierung des Anmeldeformulars

Als Vue-Benutzer ist es an der Zeit, React zu erw...

Detaillierte Analyse des Diff-Algorithmus in React

Verständnis des Diff-Algorithmus in React diff -A...

Häufige Tomcat-Ausnahmen und Lösungscodebeispiele

Das Unternehmensprojekt wurde in Java entwickelt ...