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
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.