SQL + PHP: Tabelle übertragen
Maresa P.
- datenbank
Hallo liebes Forum,
ich habe in einer MySQL Datenbank zwei Tabellen vom Typ MyISAM:
erste Tabelle:
tabelle
---------------
id
spalte1
spalte2
spalte3
zweite Tabelle:
tabelle_backup
---------------
id
spalte1
spalte2
spalte3
Wie man oben sieht, sind die Spalten der beiden Tabellen identisch.
Ich möchte nun per SQL alles aus der Tabelle 'tabelle' in die zweite Tabelle 'tabelle_backup' übertragen. Bestehende Einträge in 'tabelle_backup' sollen vorher gelöscht werden.
Ich löse dies momentan so:
1. alles aus 'tabelle_backup' löschen
-> DELETE FROM tabelle_backup
2. Auslesen und Einfügen von 'tabelle' nach 'tabelle_backup'
$query_return = mysql_query("SELECT * FROM tabelle");
while ($query_array = mysql_fetch_array($query_return)) {
mysql_query("INSERT INTO tabelle_backup SET spalte1 = ".$query_array["spalte1"]);
mysql_query("INSERT INTO tabelle_backup SET spalte2 = ".$query_array["spalte2"]);
mysql_query("INSERT INTO tabelle_backup SET spalte3 = ".$query_array["spalte3"]);
}
Mir scheint diese Lösung aber zu umständlich. Ist es möglich, die Tabelle direkt per SQL zu kopieren?
Wie löse ich sowas am Besten?
Vielen Dank für Euere Hilfe
Maresa P.
Nachtrag:
die ID kopiere ich natürlich auch noch mit...
while ($query_array = mysql_fetch_array($query_return)) {
mysql_query("INSERT INTO tabelle_backup SET id= ".$query_array["id"]);
mysql_query("INSERT INTO tabelle_backup SET spalte1 = ".$query_array["spalte1"]);
mysql_query("INSERT INTO tabelle_backup SET spalte2 = ".$query_array["spalte2"]);
mysql_query("INSERT INTO tabelle_backup SET spalte3 = ".$query_array["spalte3"]);
}
hi,
Mir scheint diese Lösung aber zu umständlich. Ist es möglich, die Tabelle direkt per SQL zu kopieren?
schau dir doch mal http://dev.mysql.com/doc/mysql/de/INSERT_SELECT.html an.
gruß,
wahsaga
Ich möchte nun per SQL alles aus der Tabelle 'tabelle' in die zweite Tabelle 'tabelle_backup' übertragen. Bestehende Einträge in 'tabelle_backup' sollen vorher gelöscht werden.
Ich löse dies momentan so:
- alles aus 'tabelle_backup' löschen
-> DELETE FROM tabelle_backup- Auslesen und Einfügen von 'tabelle' nach 'tabelle_backup'
$query_return = mysql_query("SELECT * FROM tabelle");
while ($query_array = mysql_fetch_array($query_return)) {
mysql_query("INSERT INTO tabelle_backup SET spalte1 = ".$query_array["spalte1"]);
mysql_query("INSERT INTO tabelle_backup SET spalte2 = ".$query_array["spalte2"]);
mysql_query("INSERT INTO tabelle_backup SET spalte3 = ".$query_array["spalte3"]);
}
Geht nicht auch:
INSERT INTO tabelle_backup SELECT * FROM tabelle;
Holger
Hallo Holger
INSERT INTO tabelle_backup SELECT * FROM tabelle;
Vielen Dank!
Das hat mir weitergeholfen.
Holger
Gruß
Maresa