„Replace“ und „Replace into“ von MySQL sind beides häufig verwendete Funktionen. „Replace“ führt tatsächlich eine Aktualisierungsoperation aus, anstatt zuerst zu löschen und dann einzufügen. „Replace into“ ist tatsächlich sehr ähnlich zu „Insert into“, aber bei „Replace into“ wird der alte Datensatz gelöscht, bevor der neue Datensatz eingefügt wird, wenn ein alter Datensatz in der Tabelle für einen PRIMARY KEY oder einen UNIQUE-Index denselben Wert hat wie ein neuer Datensatz. Ersetzen ist eine in MySQL häufig verwendete Funktion zum Verarbeiten von Zeichenfolgen, die den Inhalt einer Zeichenfolge ersetzen kann. Es gibt auch eine ähnliche Zeichenfolgenverarbeitungsoperation namens Trim, auf die ich hier nicht näher eingehen werde. Die Hauptfunktion von „Ersetzen in“ ähnelt der Einfügeoperation. Der Hauptunterschied besteht darin, dass beim Ersetzen anhand des Primärschlüssels oder des eindeutigen Index geprüft wird, ob die Daten vorhanden sind. Wenn die Daten vorhanden sind, werden sie vor der Aktualisierung gelöscht. Beispiel: #Tabellenstruktur: CREATE TABLE `t_test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(1) NICHT NULL STANDARD '', Primärschlüssel (`id`), EINZIGARTIGER SCHLÜSSEL `idx_name` (`name`) MIT BTREE ) ENGINE=InnoDB STANDARD-CHARSET=utf8mb4 Einfügen des ersten Datensatzes INSERT INTO t_test (`Name`) WERTE ('a') #oder Ersetzen Sie in t_test (`Name`) Werte ('a') Beim Einfügen von zwei Datensätzen mit der obigen Methode wird bei „insert into“ ein Fehler angezeigt: 1062 – Doppelter Eintrag „a“ für Schlüssel „idx_name“, Zeit: 0,001000 s. Die Verwendung von „replace into“ wird normal ausgeführt, mit der Ausnahme, dass die ID um 1 erhöht wird. ps: Das Schlüsselwort into beim Ersetzen von into kann weggelassen werden. Es sieht gleich aus, aber die Verwendung ist etwas anders. 1. ersetzen(Objekt,Suchen,Ersetzen)Ersetzen Sie alle Vorkommen von Suche im Objekt durch Ersetzen. Wählen Sie Ersetzen('www.jb51.net','w','n') aus ... ---> nnn.jb51.net Beispiel: Ersetzen Sie „Details“ im Namensfeld der Tabelle durch „Beschreibung“ Tabellensatzname aktualisieren = ersetzen (Name, „Detail“, „Beschreibung“) 2. ersetzen durchEntspricht: wenn nicht vorhanden (wähle 1 aus t, wobei ID = 1), füge in t(ID, Update-Zeit) Werte(1, getdate()) ein, sonst aktualisiere t, setze Update-Zeit = getdate(), wobei ID = 1; REPLACE funktioniert ähnlich wie INSERT. Wenn ein alter Datensatz in der Tabelle für einen PRIMARY KEY oder einen UNIQUE-Index denselben Wert wie ein neuer Datensatz hat, wird der alte Datensatz gelöscht, bevor der neue Datensatz eingefügt wird. Beachten Sie, dass die Verwendung einer REPLACE-Anweisung keinen Sinn ergibt, sofern die Tabelle nicht über einen PRIMARY KEY- oder UNIQUE-Index verfügt. Diese Anweisung wäre identisch mit INSERT, da kein Index verwendet wird, um zu bestimmen, ob die neue Zeile andere Zeilen dupliziert. Die Werte aller Spalten werden aus den in der REPLACE INTO-Anweisung angegebenen Werten übernommen. Eventuell fehlende Spalten werden wie bei INSERT INTO auf die Standardwerte gesetzt. Sie können weder auf Werte aus der aktuellen Zeile verweisen, noch können Sie Werte in einer neuen Zeile verwenden. Wenn Sie eine Zuweisung wie „SET col_name = col_name + 1“ verwenden, 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. Um REPLACE INTO zu verwenden, müssen Sie über INSERT- und DELETE-Berechtigungen für die Tabelle verfügen. Die REPLACE-Anweisung gibt eine Zahl zurück, die die Anzahl der betroffenen Zeilen angibt. Diese Zahl ist die Summe der Anzahl gelöschter und eingefügter Zeilen. Wenn diese Zahl bei einem einzeiligen REPLACE 1 ist, wird eine Zeile eingefügt und es werden keine Zeilen gelöscht. Wenn diese Zahl größer als 1 ist, wurden eine oder mehrere alte Zeilen gelöscht, bevor die neue Zeile eingefügt wurde. Wenn die Tabelle mehrere eindeutige Indizes enthält und die neue Zeile die Werte verschiedener alter Zeilen in verschiedenen eindeutigen Indizes dupliziert, ist es möglich, dass eine einzelne Zeile mehrere alte Zeilen ersetzt. Anhand der Anzahl der betroffenen Zeilen lässt sich leicht feststellen, ob durch REPLACE nur eine Zeile hinzugefügt wurde, oder ob durch REPLACE auch andere Zeilen ersetzt wurden: Prüfen Sie, ob die Zahl 1 (Addition) oder größer (Ersetzung) ist. Derzeit ist es nicht möglich, eine Tabelle zu ändern und in einer Unterabfrage Daten aus derselben Tabelle auszuwählen. Hier ist eine detailliertere Beschreibung des verwendeten Algorithmus (dieser Algorithmus wird auch für LOAD DATA ... REPLACE verwendet): 1. Versuchen Sie, eine neue Zeile in die Tabelle einzufügen 2. Wenn ein Einfügen aufgrund eines doppelten Schlüsselfehlers für einen Primärschlüssel oder einen eindeutigen Schlüssel fehlschlägt: a. Löschen Sie widersprüchliche Zeilen mit doppelten Schlüsselwerten aus der Tabelle b. Versuchen Sie erneut, die neue Zeile in die Tabelle einzufügen Drei Formen:
PS: Drei häufig verwendete Anweisungen zum Einfügen von Daten in MySQL: „insert into“ bedeutet das Einfügen von Daten. Die Datenbank überprüft den Primärschlüssel und meldet einen Fehler, wenn eine Duplizierung vorliegt. „Ersetzen in“ bedeutet das Einfügen und Ersetzen von Daten. Die Tabelle muss einen Primärschlüssel oder einen eindeutigen Index haben. Wenn in der Datenbank bereits Daten vorhanden sind, werden diese durch neue Daten ersetzt. Wenn keine Daten vorhanden sind, ist die Wirkung dieselbe wie bei „Einfügen in“. „Einfügen ignorieren“ bedeutet, dass die aktuellen neuen Daten ignoriert werden, wenn der gleiche Datensatz bereits vorhanden ist. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Dies ist das Ende dieses Artikels über die detaillierte Fallanalyse der Verwendung von „Ersetzen“ und „Ersetzen in“ in MySQL into_Mysql. Weitere relevante Inhalte zur Verwendung von „Ersetzen“ und „Ersetzen in“ in MySQL into_Mysql finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Verwenden Sie CSS, um die Breite von INPUT in TD festzulegen
>>: Teilen Sie die Schatzkammer mit 16 englischen Schriftarten mit brennendem Flammeneffekt
1. Phänomen Am frühen Morgen wurde einer Online-T...
Inhaltsverzeichnis 1. Vue-Listener-Array 2. Situa...
Die Front-End- und Back-End-Projekte sind getrenn...
Problemphänomen Ich habe kürzlich Sysbench verwen...
Die Einrichtung eines MySQL-Index ist für den eff...
In diesem Artikelbeispiel wird der spezifische Co...
Installieren Sie MySQL unter Win10 1. Laden Sie M...
Beim Erstellen einer Tabellenseite ist die für td ...
Der Wert der Hintergrundeigenschaft in CSS Hinter...
Überprüfen Sie die Virtualisierung im Task-Manage...
1 Einleitung Im Artikel „PostgreSQL mit Docker st...
1. Fügen Sie zuerst das ul-Tag im Textkörper hinz...
Installations-Tutorial zur kostenlosen Installati...
Vor Kurzem habe ich mit der Aktualisierung meines ...
Vier praktische Vue-Custom-Anweisungen 1. V-Wider...