Quiero copiar la tabla contenida en una base de datos e insertarla en otra tabla de la base de datos


96

Quiero copiar el esquema de una tabla, así como los datos dentro de esa tabla, a otra tabla de base de datos en otra base de datos en un servidor en vivo. ¿Cómo podría hacer esto?


use dos conexiones de base de datos y lea la estructura de la tabla de una y ejecute esa consulta en la otra
Dau

¿Están estas bases de datos en instancias mysql separadas o en la misma? Se pueden configurar diferentes instancias con replicación si este es un proceso continuo.
Nick

@Nick mis bases de datos están en diferentes instancias de mysql. ¿Podrías explicar cómo copiarlo?
johk95

Respuestas:


218

Si desea copiar una tabla de una base de datos a otra base de datos, simplemente puede hacer lo siguiente.

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

2
Gran solución si la tabla no tiene restricciones de clave externa. Usé esto para hacer una copia de una base de datos completa en lugar de solo una tabla. Para eso, recomiendo usar el comando mysqldump.
thorne51

MySQL ahora puede almacenar datos de tablas en archivos individuales (y los archivos frm también son por tabla). Este enfoque sin duda funcionaría, pero con grandes bases de datos es lento. ¿Hay otra forma tal vez?
Alex Kovshovik

1
Esto solo funciona si las bases de datos están en el mismo servidor.
zgr024

10

o simplemente CREAR TABLA db2.table SELECT * FROM db1.table en MySQL 5


4
Esto no copia cosas como index. Simplemente crea una tabla basada en un conjunto de tuplas. Probablemente no quieras hacer esto.
BenMQ

Sí, esta consulta no copia el índice
XxXk5XxX

4

En BASH puedes hacer:

mysqldump database_1 table | mysql database_2


2

Si solo desea que se copie la estructura, simplemente use

CREATE TABLE Db_Name.table1 LIKE DbName.table2;

Ps> que no copiará el esquema y los datos


1

simplemente use -

CREAR TABLA DB2.newtablename SELECT * FROM DB1.existingtablename;


0

En la línea de comandos:

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

Esto copiará la tabla dentro de SCHEMA en localhost a SCHEMA2 en otherhost.

localhost y otherhost son solo nombres de host y pueden ser iguales o diferentes.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.