servidores - copiar tablas mysql workbench
La forma más fácil de copiar una tabla de una base de datos a otra? (14)
MySql Workbench : muy recomendable
Esto manejará fácilmente los problemas de migración. Puede migrar tablas seleccionadas de bases de datos seleccionadas entre MySql y SqlServer. Deberías intentarlo definitivamente.
¿Cuál es el mejor método para copiar los datos de una tabla en una base de datos a una tabla en otra base de datos cuando las bases de datos están bajo diferentes usuarios?
Sé que puedo usar
INSERT INTO database2.table2 SELECT * from database1.table1
Pero aquí el problema es que tanto database1
como database2
están bajo diferentes usuarios de MySQL. Entonces user1
puede acceder a database1
solamente y user2
puede acceder solo a database2
. ¿Alguna idea?
¿Es esto algo que necesitas hacer regularmente o solo uno?
Puede hacer una exportación (por ejemplo, usando phpMyAdmin o similar) que script su tabla y su contenido en un archivo de texto, luego podría volver a importar eso en la otra base de datos.
Aquí hay otra manera fácil:
- use DB1; muestre crear la tabla TB1;
- copie la sintaxis aquí en el portapapeles para crear TB1 en DB2
- usar DB2;
- pegue la sintaxis aquí para crear la tabla TB1
INSERT INTO DB2.TB1 SELECT * from DB1.TB1;
Con MySQL Workbench puede usar Data Export para volcar solo la tabla en un archivo SQL local (Solo datos, Estructura solamente o Estructura y Datos) y luego Importar datos para cargarlo en el otro DB.
Puede tener múltiples conexiones (diferentes hosts, bases de datos, usuarios) abiertas al mismo tiempo.
IN xampp simplemente exporte la tabla requerida como un archivo .sql y luego impórtelo al requerido
Prueba mysqldbcopy
( documentation )
O puede crear una " tabla federada " en su host de destino. Las tablas federadas le permiten ver una tabla de un servidor de base de datos diferente como si fuera local. ( documentación )
Después de crear la tabla federada, puede copiar datos con la insert into TARGET select * from SOURCE
habitual insert into TARGET select * from SOURCE
Sé que esta es una vieja pregunta, solo estoy respondiendo para que cualquiera que aterrice aquí tenga un mejor enfoque.
A partir del 5.6.10 puedes hacer
CREATE TABLE new_tbl LIKE orig_tbl;
Consulte la documentación aquí: https://dev.mysql.com/doc/refman/5.7/en/create-table-like.html
Si está utilizando PHPMyAdmin, podría ser realmente simple. Supongamos que tiene las siguientes bases de datos:
DB1 & DB2
DB1 tiene una tabla de usuarios que le gusta copiar a DB2
En PHPMyAdmin, abra DB1, luego vaya a la tabla de usuarios.
En esta página, haga clic en la pestaña "Operaciones" en la parte superior derecha. En Operaciones, busque la sección Copiar tabla a (database.table):
& ¡estás listo!
Si sus tablas están en el mismo servidor mysql, puede ejecutar lo siguiente
CREATE TABLE destination_db.my_table SELECT * FROM source_db.my_table;
ALTER TABLE destination_db.my_table ADD PRIMARY KEY (id);
ALTER TABLE destination_db.my_table MODIFY COLUMN id INT AUTO_INCREMENT;
Si tiene acceso de shell puede usar mysqldump
para volcar el contenido de database1.table1
y canalizarlo a mysql
a database2
. El problema aquí es que table1
sigue siendo table1
.
mysqldump --user=user1 --password=password1 database1 table1 /
| mysql --user=user2 --password=password2 database2
Quizás necesite cambiar el nombre de table1
a table2
con otra consulta. Por otro lado, puede usar sed para cambiar la tabla1 a la tabla2 entre las tuberías.
mysqldump --user=user1 --password=password1 database1 table1 /
| sed -e ''s/`table1`/`table2`/'' /
| mysql --user=user2 --password=password2 database2
Si table2 ya existe, puede agregar los parámetros al primer mysqldump que no permite crear la tabla-create.
mysqldump --no-create-info --no-create-db --user=user1 --password=password1 database1 table1 /
| sed -e ''s/`table1`/`table2`/'' /
| mysql --user=user2 --password=password2 database2
Use la funcionalidad Exportar e Importar de MySql Workbench. Pasos:
1. Seleccione los valores que desea
E.g. select * from table1;
- Haga clic en el botón Exportar y guárdelo como CSV.
crea una nueva tabla usando columnas similares a la primera
E.g. create table table2 like table1;
seleccionar todo de la nueva tabla
E.g. select * from table2;
Haga clic en Importar y seleccione el archivo CSV que exportó en el paso 2
Yo uso Navicat para MySQL ...
¡Hace que toda la manipulación de la base de datos sea fácil!
Simplemente selecciona ambas bases de datos en Navicat y luego usa.
INSERT INTO Database2.Table1 SELECT * from Database1.Table1
utilice los pasos a continuación para copiar e insertar algunas columnas de una tabla de base de datos a otra tabla de base de datos-
- CREATE TABLE tablename (columnname datatype (size), columnname datatype (size));
2. INSERT INTO db2.tablename SELECCIONE columnname1, columnname2 FROM db1.tablename;
CREATE TABLE db1.table1 SELECT * FROM db2.table1
donde db1 es el destino y db2 es la fuente