So prüfen Sie, ob Daten vorhanden sind, bevor Sie sie in MySQL einfügen

So prüfen Sie, ob Daten vorhanden sind, bevor Sie sie in MySQL einfügen

Geschäftsszenario: Der Besuchsstatus des Besuchers muss aufgezeichnet werden, kann jedoch nicht wiederholt aufgezeichnet werden

Vor dem Einfügen können Sie feststellen, ob die einzufügenden Daten vorhanden sind. Der Geschäftscode lautet wie folgt:

INSERT INTO t_topic_vistor(Benutzer-ID,Themencode) SELECT '218', 
'XQ33019920170811142528217' VON DUAL, WO NICHT EXISTIERT (AUSWÄHLEN * 
FROM t_topic_vistor WHERE user_id = 218 und 
Themencode = "XQ33019920170811142528217")

Die Syntax lautet wie folgt:

INSERT INTO Tabelle (Feld1, Feld2, Feldn) SELECT 'Feld1', 
'Feld2', 'Feldn' FROM DUAL WHERE NOT EXISTS(SELECT Feld FROM 
Tabelle, WO Feld = ?)

Zusatzwissen: MySql fügt ein, wenn es nicht existiert, aktualisiert oder ignoriert, wenn es existiert

Vorwort

Beim Einfügen von Daten müssen Sie möglicherweise doppelte Daten ignorieren oder ersetzen (basierend auf einem bestimmten Feld). Dies kann auf Anwendungsebene gehandhabt werden, oder Sie können komplexe SQL-Anweisungen verwenden (wenn Sie nur eine einfache SQL-Syntax kennen). Natürlich können Sie auch eine einfache SQL-Syntax verwenden, aber diese ist nicht für alle Datenbanktypen universell.

Alle nachfolgenden Beispiele beziehen sich ausschließlich auf MySQL und sind nicht beliebig auf andere Datenbanken übertragbar.

Beispiele

Tabellenname: Student

Tabellenfelder:

Spaltenname Primärschlüssel Auto-Inkrement Einzigartig
Ausweis WAHR WAHR
Name WAHR
Alter

Ursprüngliche Tabellendaten:

Ausweis Name Alter
1 Jack 18

Hinweis: Alle folgenden Beispiele erfordern, dass in den einzufügenden Daten ein UNIQUE-Index oder ein PRIMARY KEY-Feld vorhanden ist. Die Primärschlüssel-ID der Tabelle wird hier eingeführt und auf automatische Inkrementierung eingestellt. Sie können die Änderungen später sehen.

1. Einfügen, wenn nicht vorhanden, aktualisieren, wenn vorhanden

1.1 bei Aktualisierung doppelter Schlüssel

Wenn die eingefügten Daten einen Konflikt/ein Duplikat im UNIQUE-Index oder im PRIMARY KEY verursachen, führen Sie eine UPDATE-Anweisung aus, zum Beispiel:

INSERT INTO `student`(`Name`, `Alter`) VALUES('Jack', 19)
 BEIM DUPLIZIERTEN SCHLÜSSEL 
 UPDATE `age`=19; -- Wenn ein Konflikt auftritt, wird die Update-Anweisung ausgeführt

-- 2 Zeile(n) betroffen

Die Anzahl der betroffenen Zeilen beträgt hier 2, da in der Datenbank Daten mit dem Namen „Jack“ vorhanden sind. Wenn diese Daten nicht vorhanden sind, beträgt die Anzahl der betroffenen Zeilen 1.

Die neuesten Tabellendaten lauten wie folgt:

Ausweis Name Alter
1 Jack 19

1.2 ersetzen durch

Wenn die eingefügten Daten einen Konflikt/ein Duplikat im UNIQUE-Index oder im PRIMARY KEY verursachen, löschen Sie zuerst die alten Daten und fügen Sie dann die neuesten Daten ein, zum Beispiel:

REPLACE INTO `Student`(`Name`, `Alter`) VALUES('Jack', 18);

-- 2 Zeile(n) betroffen

Die Anzahl der hier betroffenen Zeilen beträgt 2, da in der Datenbank Daten mit dem Namen „Jack“ vorhanden sind. Der Wert von „id“ wird 2, da zuerst die alten Daten gelöscht und dann die Daten eingefügt werden. Die neuesten Tabellendaten lauten wie folgt:

Ausweis Name Alter
2 Jack 19

2. Vermeiden Sie doppelte Einfügungen

Schlüsselwort/Satz: Einfügen ignorieren in. Wenn die eingefügten Daten einen Konflikt/ein Duplikat im UNIQUE-Index oder PRIMARY KEY verursachen, wird der Vorgang ignoriert/es werden keine Daten eingefügt, zum Beispiel:

INSERT IGNORE INTO `student`(`Name`, `Alter`) VALUES('Jack', 18);

-- 0 Zeile(n) betroffen

Hier sind bereits Daten mit dem Namen „Jack“ vorhanden, daher werden die neu eingefügten Daten ignoriert, die Anzahl der betroffenen Zeilen beträgt 0 und die Tabellendaten bleiben unverändert.

Der obige Vorgang zum Beurteilen, ob Daten vorhanden sind, bevor sie in MySQL eingefügt werden, ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • So implementieren Sie das Einfügen eines Datensatzes, wenn er nicht existiert, und dessen Aktualisierung, wenn er in MySQL existiert
  • mysql sql zum Aktualisieren, wenn der Datensatz vorhanden ist, und zum Einfügen, wenn er nicht vorhanden ist
  • MySQL-Einfügung fügt nicht ein, wenn vorhanden - Syntaxbeschreibung

<<:  Implementierung der Docker-Container-Statuskonvertierung

>>:  Verwendung des if-Urteils in HTML

Artikel empfehlen

So erstellen Sie eine MySQL-Datenbank (de1) mit Befehlen

1. Verbindung zu MySQL herstellen Format: mysql -...

HTML-Tabellen-Markup-Tutorial (43): VALIGN-Attribut der Tabellenüberschrift

In vertikaler Richtung können Sie die Ausrichtung...

Eine kurze Einführung in die Abfrageeffizienz von MySQL-Speicherfeldtypen

Die Suchleistung von der schnellsten bis zur lang...

Analyse und Anwendung des Wasserfallflussprinzips unregelmäßiger Bilder

Das im Projekt aufgetretene Layoutproblem unregel...

XHTML drei Dokumenttypdeklarationen

XHTML definiert drei Dokumenttypdeklarationen. Am...

Detaillierte Erklärung zur Verwendung von nohup /dev/null 2>&1

Befehl „nohup“: Wenn Sie einen Prozess ausführen ...

Lernprogramm zur Verwendung des WeChat-Applets WXS

Was ist wxs? wxs (WeiXin Script) ist eine Skripts...

Zusammenfassung der Situationen, in denen MySQL-Indizes nicht verwendet werden

Indextypen in MySQL Im Allgemeinen können sie in ...

Nicht standardmäßiger Implementierungscode für die MySQL UPDATE-Anweisung

Heute werde ich Ihnen einen Unterschied zwischen ...