mysql: Datensatz duplizieren
Franz. Z.
- datenbank
0 zaphod19842 dedlfix0 Franz. Z.0 Vinzenz Mai
Hallo,
weil ein oft gesuchtes Problem, für das ich im Selfforum nicht das richtige gefunden habe (aber woanders), hier ein Beitrag fürs Archiv und den nächsten, der danach sucht ;-)
CREATE TEMPORARY TABLE _temp
SELECT *
FROM stammdaten
WHERE id = xx;
ALTER TABLE _temp
CHANGE id id INT;
UPDATE _temp
SET id = NULL;
INSERT INTO stammdaten
SELECT *
FROM _temp;
Nicht auf meinen Mist gewachsen, sondern aus einem anderen Forum.
Funktioniert bestens, dank an den, ders sich ausgedacht hat und ggf. freut sich noch der ein- oder andere darüber.
Ab ins Archiv damit ;-)
F.
versteh ich nicht.
versteh ich nicht.
Was genau verstehst Du nicht?
Ich erklärs Dir gerne.
echo $begrüßung;
weil ein oft gesuchtes Problem, für das ich im Selfforum nicht das richtige gefunden habe (aber woanders),
Achwas, wenn es nicht im Archiv steht kann es nicht oft gesucht sein, oder? :-)
Funktioniert bestens [...]
... und geht mit einer aktuellen MySQL-Version (> 4.0.14) deutlich kürzer, denn das Temp-Table-Handling erledigt MySQL intern.
INSERT INTO table (feldliste_ohne_id) SELECT feldliste_ohne_id FROM table WHERE id=wert
echo "$verabschiedung $name";
Achwas, wenn es nicht im Archiv steht kann es nicht oft gesucht sein, oder? :-)
Wo soll denn da der kausale Zusammenhang sein?
INSERT INTO table (feldliste_ohne_id) SELECT feldliste_ohne_id FROM table WHERE id=wert
Auch schön. Siehste, jetzt wird das Archivpost immer wertvoller ;-))
Deine Lösung ist für wenige Spalten besser als die von mir gefundene. Für sehr viele Spalten find ich meine besser.
echo "$verabschiedung $name";
Hallo,
» weil ein oft gesuchtes Problem, für das ich im Selfforum nicht das richtige gefunden habe (aber woanders),
Achwas, wenn es nicht im Archiv steht kann es nicht oft gesucht sein, oder? :-)
stimmt auffallend, außer bei zwei, drei Forumsanfragen ist mir dieses Problem noch nie begegnet. Ich musste noch nie einen Datensatz in der gleichen Tabelle duplizieren und kann mir immer noch nicht vorstellen, warum es nötig sein sollte.
... und geht mit einer aktuellen MySQL-Version (> 4.0.14) deutlich kürzer, denn das Temp-Table-Handling erledigt MySQL intern.
INSERT INTO table (feldliste_ohne_id) SELECT feldliste_ohne_id FROM table WHERE id=wert
zudem ist es ein atomarer Vorgang, eine gute Sache, somit die klar zu bevorzugende Variante. Grundsätzlich gehen beide Varianten nur dann, wenn es sonst keinen eindeutigen Index in der Tabelle gibt. Gründe für eine weitere Spalte mit einem eindeutigen Index kann ich mir sehr gut vorstellen.
Einziger Grund für die Version des OP ist der Faulpelz-Mode ;-)
Freundliche Grüße
Vinzenz