Detaillierte Beschreibung des MySQL-Ersetzens in der Verwendung

Detaillierte Beschreibung des MySQL-Ersetzens in der Verwendung

Die Ersetzungsanweisung ähnelt im Allgemeinen der Einfügungsanweisung. Wenn jedoch in der Tabelle ein Primär- oder eindeutiger Index vorhanden ist und die eingefügten Daten mit dem ursprünglichen Primärschlüssel oder eindeutig übereinstimmen, werden die ursprünglichen Daten gelöscht und neue hinzugefügt. Daher ist die Ausführung einer Ersetzungsanweisung manchmal gleichbedeutend mit der Ausführung einer Lösch- und Einfügeanweisung. Kommen wir direkt zum Beispiel:

Erstellen Sie eine Testtabelle mit drei Feldern: ID, Titel und UID. ID ist der automatisch inkrementierte Primärschlüssel und UID ist der eindeutige Index.

CREATE TABLE `test` (
 `Id` int(11) NICHT NULL AUTO_INCREMENT,
 `title` varchar(25) DEFAULT NULL COMMENT 'Titel',
 `uid` int(11) STANDARD NULL KOMMENTAR 'uid',
 Primärschlüssel (`Id`),
 EINZIGARTIGER SCHLÜSSEL `uid` (`uid`)
)ENGINE=InnoDB STANDARD-CHARSET=utf8mb4;

in Test einfügen (Titel, UID) WERTE ('Hallo', '1');
in Test einfügen (Titel, UID) WERTE ('Nationalfeiertag', '2');

Die Ergebnisse sind wie folgt:

Beim Einfügen von Daten mit „Ersetzen in“:

REPLACE INTO test(title,uid) VALUES ('Diese Zeit ist 8 Tage frei','3');

Wenn die UID vorhanden ist, verwenden Sie die Anweisung „Replace into“.

REPLACE INTO test(title,uid) VALUES ('Dies sind die ersten Daten von Uid=1','1');

Ich hatte nicht erwartet, dass MySQL, wenn es auf Datenkonflikte stößt (also wenn UID-Duplikate auftreten), tatsächlich den alten Datensatz löscht und dann den neuen Datensatz schreibt. Ich glaube, dass Blogger anhand der obigen Beispiele Folgendes erkennen können:

„Ersetzen in“ ähnelt „Einfügen“, außer dass „Ersetzen in“ zuerst versucht, Daten in die Tabelle einzufügen.

1. Wenn festgestellt wird, dass diese Datenzeile bereits in der Tabelle vorhanden ist (bestimmt durch den Primärschlüssel oder den eindeutigen Index), löschen Sie zuerst diese Datenzeile und fügen Sie dann die neuen Daten ein. 2. Andernfalls fügen Sie die neuen Daten direkt ein.

Bitte beachten Sie, dass die Tabelle, in die Daten eingefügt werden, einen Primärschlüssel bzw. einen eindeutigen Index besitzen muss! Andernfalls werden die Daten durch „Ersetzen in“ direkt eingefügt, was zu doppelten Daten in der Tabelle führt.

MySQL replace into hat drei Formen:

1. Ersetzen Sie in tbl_name(col_name, ...) die Werte(...)

2. Ersetzen Sie es durch tbl_name(col_name, ...), wählen Sie ...

3. Ersetzen Sie in tbl_name den Satz col_name=value, …

Die erste Form ähnelt der Verwendung von „insert into“.

Die zweite Verwendung von „Replace Select“ ähnelt ebenfalls „Insert Select“. Bei dieser Verwendung müssen die Spaltennamen nicht unbedingt übereinstimmen. Tatsächlich kümmert sich MySQL nicht einmal um die von „Select“ zurückgegebenen Spaltennamen. Was es braucht, ist die Position der Spalte. Beispiel: „replace into tb1(name, title, mood) select rname, rtitle, rmood from tb2“; In diesem Beispiel wird „replace into“ verwendet, um alle Daten von tb2 in tb1 zu importieren.

Die dritte Verwendung des Ersetzungssatzes ähnelt der Verwendung des Aktualisierungssatzes. Bei einer Zuweisung wie „SET col_name = col_name + 1“ wird der Verweis auf den Spaltennamen auf der rechten Seite als DEFAULT(col_name) behandelt. Daher ist diese Zuweisung gleichwertig mit SET col_name = DEFAULT(col_name) + 1.

Die ersten beiden Formen werden häufiger verwendet. Das Schlüsselwort „into“ kann weggelassen werden, es ist jedoch besser, „into“ hinzuzufügen, damit die Bedeutung intuitiver ist. Darüber hinaus weist MySQL Spalten ohne angegebene Werte automatisch Standardwerte zu.

Das könnte Sie auch interessieren:
  • Verwendung und Unterschiedsanalyse von „Ersetzen in“ und „Einfügen in“ beim Update doppelter Schlüssel in MySQL
  • Erklärung zur Verwendung von „Ersetzen“ und „Ersetzen in“ in MySQL
  • Detaillierte Erklärung zum Ersetzen in ein Beispiel in MySQL
  • Eine kurze Analyse der MySQL-Ersetzungs-Anweisung (Teil 2)
  • Eine kurze Analyse der MySQL-Replace-Into-Anweisung (I)
  • Detaillierte Erklärung zur Verwendung der replace into-Anweisung in MySQL
  • Eine kurze Analyse der Verwendung von MySQL replace in
  • Der wirkliche Unterschied zwischen MySQLs Ersetzen in und Einfügen in bei doppeltem Schlüsselupdate
  • Analyse der Unterschiede zwischen REPLACE INTO und INSERT INTO in MySQL
  • Verwendung von MySQL Replace INTO

<<:  JSON (JavaScript Object Notation) in einem Artikel verstehen

>>:  Schritte zum Wiederherstellen von Code aus einem Docker-Container-Image

Artikel empfehlen

Überblick und Einführung in das Linux-Betriebssystem

Inhaltsverzeichnis 1. Was ist ein Betriebssystem?...

Überwachung sowie Betrieb und Wartung von Linux-Diensten

Inhaltsverzeichnis 1. Installieren Sie das psutil...

Erfahren Sie mehr über die am häufigsten verwendeten JavaScript-Ereignisse

Inhaltsverzeichnis JavaScript-Ereignisse: Häufig ...

So migrieren Sie das Datenverzeichnis in Docker

Inhaltsverzeichnis Datenträgernutzung anzeigen Da...

Element verwendet Skripte, um automatisch neue Komponenten zu erstellen

Inhaltsverzeichnis Hintergrund Wie funktioniert d...

So verwenden Sie die Lotteriekomponente des WeChat Mini-Programms

Es wird in Form von WeChat-Komponenten bereitgest...

Tutorial zur Installation und Konfiguration von MySQL für Mac

In diesem Artikel finden Sie das MySQL-Installati...

Benutzerdefinierte Tabbar-Komponente für das WeChat-Applet

In diesem Artikel wird der spezifische Code der b...

Drei Möglichkeiten, das horizontale Div-Layout auf beiden Seiten auszurichten

In diesem Artikel werden hauptsächlich drei Metho...

Implementierung des Nginx-Proxy-Ports 80 bis Port 443

Die Konfigurationsdatei nginx.conf lautet wie fol...

Vue + Element realisiert Paging-Effekt

In diesem Artikelbeispiel wird der spezifische Co...

Verwendung des Zielattributs des HTML-Tags a

1: Wenn Sie das Tag <a> zum Verlinken auf ei...