¿Cómo copio, clono o duplico los datos, la estructura y los índices de una tabla MySQL en una nueva?
Esto es lo que he encontrado hasta ahora.
Esto copiará los datos y la estructura, pero no los índices:
create table {new_table} select * from {old_table};
Esto copiará la estructura y los índices, pero no los datos:
create table {new_table} like {old_table};
Respuestas:
Para copiar con índices y disparadores, haga estas 2 consultas:
Para copiar solo la estructura y los datos, use este:
He preguntado esto antes:
Copie una tabla MySQL que incluya índices
fuente
select *
en tablas grandes.AUTO_INCREMENT
valor.Además de la solución anterior, puede usar
AS
para hacerlo en una línea.fuente
create table {new_table} select * from {old_table};
no es una respuesta y no proporciona información nueva.Manera MySQL:
fuente
Vaya a phpMyAdmin y seleccione su tabla original, luego seleccione la pestaña " Operaciones " en el área " Copiar tabla a (database.table) ". Seleccione la base de datos donde desea copiar y agregue un nombre para su nueva tabla.
fuente
Encontré la misma situación y el enfoque que tomé fue el siguiente:
SHOW CREATE TABLE <table name to clone>
: esto le dará laCreate Table
sintaxis de la tabla que desea clonarCREATE TABLE
consulta cambiando el nombre de la tabla para clonarla.Esto creará una réplica exacta de la tabla que desea clonar junto con los índices. Lo único que necesita es cambiar el nombre de los índices (si es necesario).
fuente
La mejor manera de duplicar una tabla es usar solo
DDL
instrucciones. De esta forma, independientemente del número de registros en la tabla, puede realizar la duplicación al instante.Mi proposito es:
Esto evita la
INSERT AS SELECT
afirmación de que, en el caso de una tabla con muchos registros, puede llevar tiempo ejecutarla.Sugiero también crear un procedimiento PLSQL como el siguiente ejemplo:
¡Que tengas un buen día! Alex
fuente
Ampliando esta respuesta, uno podría usar un procedimiento almacenado:
Lo que dará como resultado una tabla duplicada llamada
tableName_20181022235959
If if whenresultados:
Implementación
fuente
Después de probar la solución anterior, ideé mi propio camino.
Mi solución es un pequeño manual y necesita DBMS.
Primero, exportar los datos.
En segundo lugar, abra los datos de exportación.
Tercero, reemplace el nombre de la tabla anterior con el nombre de la tabla nueva.
Cuarto, cambie todo el nombre del disparador en los datos (uso MySQL y muestra un error cuando no cambio el nombre del disparador).
Quinto, importe sus datos SQL editados a la base de datos.
fuente
Prueba esto :
Seleccioné 4 columnas de la tabla antigua e hice una tabla nueva.
fuente
PARA MySQL
PARA USO DE MSSQL
MyDatabase
:Este SQL se usa para copiar tablas, aquí se copiará el contenido de oldCustomersTable
newCustomersTable
.Asegúrese de que
newCustomersTable
no exista en la base de datos.fuente