Tabelle kopieren

Oftmals ist es notwendig zu Testzwecken Daten aus einer Tabelle einer Datenbank in eine andere Tabelle einer anderen Datenbank zu kopieren. Im folgenden Beispiel soll aus der Datenbank "mailadmin" die Tabelle "T1" inclusive Inhalt in die Datenbank "amavis" kopiert werden. Der Tabellenname in der DB "amavis" soll "T2" sein.

Auslesen der Tabellenstruktur

mariadb> use mailadmin;
mariadb> show create table T1\G
Die Ausgabe sieht in etwa so aus:  
*************************** 1. row ***************************
       Table: T1
Create Table: CREATE TABLE `mailadmin`.`T1` (
`rid` INT( 10 ) UNSIGNED NOT NULL ,
`sid` INT( 10 ) UNSIGNED NOT NULL ,
`wb` VARCHAR( 10 ) COLLATE latin1_german1_ci NOT NULL ,
PRIMARY KEY ( `rid` , `sid` )
) ENGINE = MYISAM DEFAULT CHARSET = latin1 COLLATE = latin1_german1_ci;
1 row in set (0.00 sec)
  Genau diese Struktur wird nun im nächsten Schritt zum Anlegen der Zieltabelle verwendet.

Anlegen der Zieltabelle

CREATE TABLE `amavis`.`T2` (
`rid` int( 10 ) unsigned NOT NULL ,
`sid` int( 10 ) unsigned NOT NULL ,
`wb` varchar( 10 ) COLLATE latin1_german1_ci NOT NULL ,
PRIMARY KEY ( `rid` , `sid` )
) ENGINE = MYISAM DEFAULT CHARSET = latin1 COLLATE = latin1_german1_ci;
Der eigentliche Kopiervorgang wird dann mit folgender Query gestartet:

Kopiervorgang

INSERT INTO `amavis`.`T2`
SELECT *
FROM `mailadmin`.`T1` ;