Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
DB-Eintrag in andere Tabelle verschieben [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
DB-Eintrag in andere Tabelle verschieben


 
andik2000
27-09-2002, 19:06 
 
Hallo Leute,

ich habe zwei Adress-Tabellen, die von der Struktur her gleich sind.
Die eine ist extern zugänglich und neue Einträge können vorgenommen werden, die andere ist intern.

Jezt habe ich eine Admin-Seite zum Ändern der einträge gebastelt.
Von dort sollen per Klick einträge von der externen in die interne DB verschoben werden.

Logisch ist also alle Felder der einen DB auszulesen, in die andere DB einzutragen und dann die erste wieder zu löschen.

Da ich ein fauler Sack bin, frage ich mich daher, obs nicht dafür einen eigenen Befehl gibt.
Quasi:
mysql_query("COPY * from DB1 to DB2");
oder:
mysql_query("MOVE * from DB1 to DB2");

Allerdings dürfte das Feld ID nicht mit kopiert werden, bzw sollte beim Eintragen in der zweiten DB dann ein neue ID bekommen laut auto_incement.

Weiss da jemand Bescheid und kann mir da mal weiterhelfen?

Thanx und Grüße,
Andi

 
goth
27-09-2002, 20:15 
 
Solange beide Databanken auf einem Server liegen würde ich mir mal das Statement INSERT INTO ... SELECT ... (http://www.mysql.com/doc/en/INSERT_SELECT.html) anschauen.

und dabei bedenken das INSERT INTO (http://www.mysql.com/doc/en/INSERT.html) und REPLACE INTO (http://www.mysql.com/doc/en/REPLACE.html) beiden den gleichen Aufbau haben ... !

 
Troublegum
27-09-2002, 20:16 
 
# mit altem Primary Key
INSERT INTO tbl2 SELECT * FROM tbl1;

# mit auto-increment primary key
INSERT INTO tbl2 (feld1,feld2,feld3) SELECT feld1,feld2,feld3 FROM tbl1;

 
andik2000
30-09-2002, 10:54 
 
Cool, genau das ist's!

Bin zwar jetzt zwischendurch doch den umstänlicheren Weg gegangen, aber für die Zukunft weiss ich nun bescheid.

Danke,
Andi


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:53 Uhr.