Klonen einer Zeile in MySQL: Alternative zur expliziten Spaltenauswahl
In MySQL ist es oft erwünscht, eine Tabellenzeile schnell und effizient zu replizieren. Der übliche Ansatz besteht darin, Zeilendaten mit „SELECT *“ zu extrahieren und wieder in dieselbe Tabelle einzufügen. Diese Methode wird jedoch bei Tabellen mit einer großen Anzahl von Spalten unhandlich.
Leonard Challis hat eine clevere Lösung vorgeschlagen, die die Notwendigkeit vermeidet, alle Spalten aufzulisten:
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1; UPDATE tmptable_1 SET primarykey = NULL; INSERT INTO table SELECT * FROM tmptable_1; DROP TEMPORARY TABLE IF EXISTS tmptable_1;
Diese Technik beinhaltet die Erstellung einer temporäre Tabelle zum Speichern der gewünschten Zeile. Der Primärschlüssel für diese temporäre Tabelle ist auf Null gesetzt, sodass MySQL beim Einfügen einen neuen Wert generieren kann. Um sicherzustellen, dass eine einzelne Zeile abgerufen wird, kann „LIMIT 1“ zur INSERT INTO-Anweisung hinzugefügt werden.
Um weiterhin sicherzustellen, dass nur die beabsichtigte Zeile eingefügt wird, sollte der Primärschlüsselwert an den Namen der temporären Tabelle angehängt werden wie im Codeausschnitt zu sehen ist. Diese Technik vereinfacht den Prozess des Zeilenkopierens, ohne dass eine explizite Spaltenauswahl erforderlich ist, und macht sie zu einem wertvollen Werkzeug für die Verwaltung großer Tabellen in MySQL.
Das obige ist der detaillierte Inhalt vonWie klone ich eine Zeile in MySQL, ohne explizit Spalten auszuwählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!