Wilhelm Turtschan: SQL: Wie kann man einen Datensatz duplizieren?

Beitrag lesen

habe d'ehre Adrian

Ich möchte lediglich einen Datensatz duplizieren (Der Sinn spielt dabei keine Rolle). p_id soll natürlich automatisch gesetzt werden (da es PK und AI ist) und ich möchte die Kolonnennamen nicht hinschreiben (da das Statement bei Änderungen der Tabelle evtl. umgeschrieben werden müsste).

Ich wuerde ueber einen Umweg wie folgt vorgehen:

  1. Mit SELECT den Originaldatensatz holen und in ein Array speichern.

  2. Mit mysql-fetch-field die Feldinformationen holen und in ein Array speichern. Du bekommst Feldname und Feldtyp (1 = numeric)

  3. Mit foreach Deinen SQL-String bauen, z.B.

  
$SQL = "";  
foreach($field_name as $key => $value) {  
 if($key == 0) $trenner = "";  
  else $trenner = ", ";  
 if($field_type[$key] == "A")   $SQL .= $trenner.$field_name[$key]."='".$field_value[$key]."'";  
 else if($field_type[$key] == "N") $SQL .= $trenner.$field_name[$key]."=".$field_value[$key];  
  
}  
  
$SQLi = "INSERT INTO wtu_adr_base SET unique_key = 0, ".$SQL;  
$SQL_RESULT = mysql_query($SQL, $DB);  
blubb blubb fuer Errorhandling etc.  

man liest sich
Wilhelm