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;
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:
|
<<: JSON (JavaScript Object Notation) in einem Artikel verstehen
>>: Schritte zum Wiederherstellen von Code aus einem Docker-Container-Image
Inhaltsverzeichnis 1. Was ist ein Betriebssystem?...
Inhaltsverzeichnis 1. Installieren Sie das psutil...
Inhaltsverzeichnis JavaScript-Ereignisse: Häufig ...
Inhaltsverzeichnis Datenträgernutzung anzeigen Da...
1. Docker installieren 1. Ich habe Centos7 in der...
Inhaltsverzeichnis Hintergrund Wie funktioniert d...
Es wird in Form von WeChat-Komponenten bereitgest...
In diesem Artikel finden Sie das MySQL-Installati...
In diesem Artikel wird der spezifische Code der b...
In diesem Artikel werden hauptsächlich drei Metho...
Die Konfigurationsdatei nginx.conf lautet wie fol...
Jeder hat schon Flipper und Ziegelsteinzertrümmer...
Beim Anpassen der Softwareinstallation müssen Sie...
In diesem Artikelbeispiel wird der spezifische Co...
1: Wenn Sie das Tag <a> zum Verlinken auf ei...