Copiar una tabla en MySQL

Preet Sanghavi 30 enero 2023
  1. Clonar tabla usando la instrucción CREATE TABLE ... AS SELECT
  2. Clonar tabla con datos parciales usando la cláusula WHERE
Copiar una tabla en MySQL

Este tutorial tiene como objetivo explorar diferentes métodos para crear una copia de una tabla en MySQL.

La tabla de origen también se conoce como la tabla que se va a copiar, y la tabla de destino, conocida como tabla de clonación, puede ser de la misma base de datos o de bases de datos independientes dentro de un servidor MySQL.

Exploraremos los siguientes métodos para copiar una tabla en MySQL:

  • Clonar tabla usando la instrucción CREATE TABLE ... AS SELECT.
  • Clonar tabla con datos parciales usando la cláusula WHERE.

Antes de comenzar, crearemos un conjunto de datos ficticio para trabajar. Aquí creamos una tabla, student_details, junto con algunas filas en ella.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

La consulta anterior crea una tabla junto con filas con el nombre y apellido del estudiante. Para ver las entradas en los datos, usamos el siguiente código:

SELECT * FROM student_details;

El código antes mencionado daría el siguiente resultado:

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

Ahora, creemos una copia de la tabla anterior con el nombre students_data_backup.

Clonar tabla usando la instrucción CREATE TABLE ... AS SELECT

Uno de los métodos más básicos para crear una copia de tabla es usar la instrucción CREATE TABLE ... AS SELECT. Podemos hacer esta operación con el siguiente código:

-- Basic copy table creation
create table students_data_backup as select * from student_details;

El código antes mencionado crea una tabla de copia llamada students_data_backup de la tabla student_details que actúa como la tabla fuente. Podemos visualizar esta nueva tabla students_data_backup con la siguiente consulta:

select * from students_data_backup;

La salida del código mencionado anteriormente da como resultado una tabla temporal de la siguiente manera:

stu_id	stu_firstName	stu_lastName
1	        Preet	      Sanghavi
2	        Rich	      John
3	        Veron	      Brow
4	        Geo	          Jos
5	        Hash	      Shah
6			Sachin		  Parker
7			David	      Miller

Clonar tabla con datos parciales usando la cláusula WHERE

A veces, solo es necesario clonar una cierta parte de un particular. Podemos utilizar la cláusula WHERE y la sentencia CREATE TABLE ... AS SELECT para realizar esta operación.

Intentemos clonar parcialmente la tabla student_details. Elegimos clonar la tabla con datos de solo los primeros cinco stu_id.

Podemos hacer esta operación con el siguiente código:

-- Cloning the student_details table with where clause
create table students_data_backup as select * from student_details WHERE stu_id <= 5;

La muestra de código dada producirá el siguiente resultado:

stu_id	stu_firstName	stu_lastName
1	        Preet	      Sanghavi
2	        Rich	      John
3	        Veron	      Brow
4	        Geo	          Jos
5	        Hash	      Shah

Como podemos ver, se ha creado una copia de la tabla student_details pero solo con los primeros cinco stu_id.

Con esta técnica, podemos clonar datos parciales de una tabla en particular según nuestros requisitos. Con la ayuda de los dos métodos anteriores, podemos crear fácilmente una copia de la tabla fuente.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

Artículo relacionado - MySQL Table