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

So extrahieren Sie Zeichenfolgenelemente aus nicht festen Positionen in MySQL

Vorwort Hinweis: Die Testdatenbankversion ist MyS...

CSS3 ändert den Bildlaufleistenstil des Browsers

Hinweis: Diese Methode ist nur auf WebKit-basiert...

CSS-Tutorial: CSS-Attribut-Medientyp

Eines der wichtigsten Merkmale eines Stylesheets ...

So verwenden Sie dl(dt,dd), ul(li), ol(li) in HTML

HTML <dl> Tag #Definition und Verwendung Da...

Lösung für den Fehler beim Kompilieren des LVGL-Emulators unter Linux

Inhaltsverzeichnis 1. Fehlerphänomen 2. Fehlerana...

Zusammenfassung der MySQL-Verbundindizes

Inhaltsverzeichnis 1. Hintergrund 2. Zusammengese...

Das Prinzip und die Anwendung der ES6-Dekonstruktionszuweisung

Inhaltsverzeichnis Array-Destrukturierungszuweisu...

Hinweise zur Verwendung des Blockquote-Tags

<br />Semantisierung lässt sich nicht mit we...

Grafische Installationsschritte für VMware vSphere 6.7 (ESXI 6.7)

Umgebung: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-...

Eine kurze Diskussion über den Spaß von :focus-within in CSS

Ich glaube, einige Leute haben dieses Bild gesehe...

Verwendung der Vue3-Tabellenkomponente

Inhaltsverzeichnis 1. Ant Design Vue 1. Offiziell...