Voglio copiare la tabella contenuta da un database e inserirla in un'altra tabella di database


96

Voglio copiare lo schema di una tabella così come i dati all'interno di quella tabella in un'altra tabella di database in un altro database su un server live. Come potrei farlo?


usa due connessioni al database e leggi la struttura della tabella da una ed esegui quella query nell'altra
Dau

Questi database sono su istanze mysql separate o sono lo stesso? È possibile configurare istanze diverse con la replica se si tratta di un processo continuo.
Nick

@ Nick i miei database sono su diverse istanze di mysql. Potresti spiegare come copiarlo?
johk95

Risposte:


218

Se vuoi copiare una tabella da un database a un altro database, puoi semplicemente fare come di seguito.

CREATE TABLE db2.table LIKE db1.table;
INSERT INTO db2.table SELECT * FROM db1.table;

2
Ottima soluzione se la tabella non ha vincoli di chiave esterna. L'ho usato per creare una copia di un intero database invece di una sola tabella. Per questo consiglio di utilizzare il comando mysqldump.
thorne51

MySQL può ora memorizzare i dati della tabella in singoli file (e anche i file frm sono per tabella). Questo approccio funzionerebbe senza dubbio, ma con database enormi è lento. C'è forse un altro modo?
Alex Kovshovik

1
Funziona solo se i database si trovano sullo stesso server.
zgr024

10

o semplicemente CREATE TABLE db2.table SELECT * FROM db1.table in MySQL 5


4
Questo non copia cose come index. Crea semplicemente una tabella basata su un insieme di tuple. Probabilmente non vuoi farlo.
BenMQ

Sì, questa query non copia indexe
XxXk5XxX

4

In BASH puoi fare:

mysqldump database_1 table | mysql database_2


2

Se vuoi solo copiare la struttura usa semplicemente

CREATE TABLE Db_Name.table1 LIKE DbName.table2;

Ps> che non copierà schema e dati


1

usa semplicemente -

CREA TABELLA DB2.newtablename SELEZIONA * DA DB1.existingtablename;


0

Nella riga di comando:

mysqldump -h localhost -u username -ppassword [SCHEMA] --tables [TABLE] | mysql -h otherhost -u username -ppassword [SCHEMA2]

Questo copierà la tabella all'interno di SCHEMA su localhost su SCHEMA2 su otherhost.

localhost e otherhost sono solo hostname e potrebbero essere uguali o diversi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.