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

Grafisches Tutorial zu MySQL-Downloads und Installationsdetails

1. Um die MySQL-Datenbank herunterzuladen, besuch...

Haben Sie die MySQL-Verbindungsabfrage wirklich gelernt?

1. Übersicht über Inner Join-Abfragen Der Inner J...

Lösung für den von Mysql systemctl start mysqld gemeldeten Fehler

Fehlermeldung: Der Job für mysqld.service ist feh...

Detaillierte Erklärung der Whitelist-Regeln von nginx-naxsi

Syntax der Whitelist-Regel: Grundregel wl:ID [neg...

XHTML-Tutorial: XHTML-Grundlagen für Anfänger

<br />Der Inhalt dieser Site ist Original. B...