Thomas: MySQL: Datensatz duplizieren

Beitrag lesen

Hallo Götz,

erstmal danke für deine Antwort.

Mit welcher MySQL-Version arbeitest du?

Ich benutze zur Zeit MySQL 4.0.12, das 4.1 ist ja erst im Alpha-Satdium.

Aber ich glaube, bisher kann MySQL noch keine Subselects (ich bin mir nicht sicher, obs 4.1 können wird .. aber drunter glaube ich kann sies auf jeden Fall nicht, das kannst du aber bestimmt auf [http://www.mysql.com] nachlesen)

Diese Schreibweise mit "INSERT ... SELECT" hatte ich mir aus meinem PHPMyAdmin abgeschaut, als ich dort auf der Suche war nach etwas, das wie "Datensatz multiplizieren" aussieht.

Ich war vorher schon auf www.mysql.de gewesen und jetzt eben, während ich das schreibe, nochmal und siehe da, schon finde ich die Lösung:

"Die Ziel-Tabelle des INSERT-Statements darf nicht in der FROM-Klausel des SELECT-Teils der Anfrage erscheinen..."

zu finden auf:

http://www.mysql.de/doc/de/INSERT_SELECT.html

Ist mal wieder typisch, egal, wie lange und wo man sucht, es bleibt doch immer noch eine Glücksache. Deswegen finde ich ja auch die Foren so toll, weil man hier eine intelligente Antwort bekommt und nicht nur Suchmaschinen-Brei.

Am einfachsten machst du wohl 2 SQL-Befehle.
Also erstmal
"SELECT feld1,feld2,usw FROM tabelle WHERE id = '34'"
Dann wertest du das aus, und baust daraus nen Insert, den Du dann wieder an die DB schickst, also so ähnlich:
"INSERT INTO tabelle (feld1,feld2,usw) VALUES('".$feld1."','".$feld2."','".$usw."')"

Genau, das hatte ich mir auch als Alternative gedacht, nur weil ich insgesamt über 60 Felder (verteilt auf 4 Tabellen) habe, wollte ich es etwas einfacher machen. ;-)

Also, nochmal vielen Dank für deine Antwort und schönes, verlängertes WE (ab Morgen Abend :-)

Thomas