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

Detaillierte Erklärung der MySQL-Berechtigungen und -Indizes

MySQL-Berechtigungen und Indizes Der höchste Benu...

Wann ist die Verwendung von dl, dt und dd sinnvoll?

dl: Definitionsliste Definitionsliste dt: Definiti...

Wie stellt MySQL die Master-Slave-Konsistenz sicher?

Inhaltsverzeichnis Das Grundprinzip von MySQL Mas...

Javascript-Betriebsmechanismus „Event Loop“

Inhaltsverzeichnis 1. Vier Konzepte 1. JavaScript...

Mysql-Indextypen und grundlegende Anwendungsbeispiele

Inhaltsverzeichnis Index - Allgemeiner Index - Ei...

Detaillierte Erklärung des Hash-Jump-Prinzips von Vue

Inhaltsverzeichnis Der Unterschied zwischen Hash ...

Beispiele für die Verwendung von MySQL-Abdeckungsindizes

Was ist ein Deckungsindex? Das Erstellen eines In...

CSS erzielt farbenfrohe und intelligente Schatteneffekte

Hintergrund Haben Sie sich jemals gefragt, wie Si...

Detaillierte Erklärung der Kernkonzepte und der grundlegenden Verwendung von Vuex

Inhaltsverzeichnis einführen Start Installieren ①...

Beispielanalyse für MySQL Oracle- und SQL Server-Paging-Abfragen

Ich habe vor Kurzem eine einfache Studie zur Date...

Detaillierte Analyse des binlog_format-Modus und der Konfiguration in MySQL

Es gibt drei Hauptmethoden der MySQL-Replikation:...

Vue ruft die Computerkamera auf, um die Fotofunktion zu realisieren

In diesem Artikelbeispiel wird der spezifische Co...