phpbar.de logo

Mailinglisten-Archive

[php] tabellen 1:1 kopieren in eine andere DB

[php] tabellen 1:1 kopieren in eine andere DB

Volker Goebbels goebbels at gmx.de
Don Apr 14 14:53:05 CEST 2005


Hallo,

> ich muss einzelne tabellen per skript in eine andere DB kopieren,
> möchte mir allerdings zahlreiche SELECTS und wieder INSERTS sparen,
> wie löse ich das am besten?!

ich gehe mal von einer MySQL Datenbank aus, da nichts angegeben war dazu.

1. Variante: Zieltabelle existiert noch nicht:
CREATE TABLE new_tbl SELECT * FROM orig_tbl;

2. Variante: Zieltabelle existiert schon, ist aber leer:
INSERT INTO new_tbl SELECT * FROM orig_tbl;

Das funktioniert so erst enmal innerhalb ein und derselben Datenbank.
Schreibt man die Tabellennamen vollständig, so geht das auch quer über DBs:
CREATE TABLE db1.new_tbl SELECT * FROM db2.orig_tbl;
und
INSERT INTO db1.new_tbl SELECT * FROM db2.orig_tbl;

Ab MySQL 4.1 besteht auch die Möglichkeit, Tabellen per Like Statement zu
erzeugen:
CREATE TABLE new_tbl LIKE old_tbl;
Dazu würde ich aber noch das Manual beachten, weil da nicht alles mitkopiert
wird.

Zu guter Letzt besteht noch die Möglichkeit, sich das Create Table Statement
für eine bestehende Tabelle anzeigen zu lassen und damit auch mit geändertem
Namen wieder weg zu schreiben:
SHOW CREATE TABLE old_tbl;
Da könnte man den alten Namen durch einen neuen ersetzen und das Statement
wieder im MySQL absetzen.

Eine der Methoden sollte helfen ;)

Viele Grüße,
Volker Göbbels

-- 
Arachnion GmbH & Co. KG                  Dr. Volker Göbbels
Business Communication                     vmg at arachnion.de
Sandkaulbach 4                       Tel. +49 (0) 241-55911-06
52062 Aachen                          Fax +49 (0) 241-55911-07

php::bar PHP Wiki   -   Listenarchive