martes, 17 de enero de 2017

Cómo copiar una tabla MySQL en tres diferentes métodos


Existen varios motivos por el cual se necesite realizar una copia de una tabla: tener un respaldo de la tabla, realizar pruebas en los datos de una tabla pero no se quiere correr el riesgo de modificar los datos originales, tener una tabla con ciertos registros filtrados de otra, tener una tabla con la misma estructura de otra pero sin sus datos, en fin existen muchas razones por la cual se puede necesitar realizar una copia de una tabla.

Objetivo:
Aprender los distintos métodos que ofrece MySQL para copiar una tabla.


Primer método:
Crear una tabla a partir de otra.
Sintaxis:   
mysql> CREATE TABLE tabla_nueva SELECT * FROM tabla_origen;
Ejemplo #1:
Crear una copia de la tabla mascota denominada mascota2.
mysql> CREATE TABLE mascota2 SELECT * FROM mascota;
Ejemplo #2:
Crear una copia de la tabla mascota denominada mascota3 pero sólo con los perros no vacunados .
mysql> CREATE TABLE mascota3 SELECT * FROM mascota WHERE tipo=”PERRO” AND vacuna=”N”;


Segundo método:
Crear una tabla a partir de otra pero sin sus datos.
Sintaxis:
mysql> CREATE TABLE tabla_nueva LIKE tabla_origen;
Ejemplo #3:
Crear una copia de la tabla mascota denominada mascota4 pero sin sus datos.
mysql> CREATE TABLE mascota4 LIKE mascota;
Observación:
Con el primer método también podemos crear una tabla vacía escribiendo un criterio en la cláusula WHERE del SELECT que no cumpla ningún registro.


Tercer método:
Copiar los registros de una tabla a otra.
Sintaxis:
mysql>INSERT INTO tabla_nueva (campo1, campo2,...campoN) SELECT campo1,campo2,campoN FROM tabla_origen WHERE criterio;
Ejemplo #4:
Copiar todos los registros de la tabla mascota a la tabla mascota4. (La tabla mascota4 tiene la misma estructura de datos que la tabla mascota)
mysql>INSERT INTO mascota4 SELECT * FROM mascota;
Ejemplo #5:
Copiar solo los registros que sean de perros no vacunados de la tabla mascota a la tabla mascota4 pero sólo incluir los campos nombre, tipo y vacuna. (La tabla mascota4 sólo requiere tener los campos a ser insertados, si tiene más campos estos quedarán vacíos)
mysql>INSERT INTO mascota4 (nombre,tipo,vacuna) SELECT nombre,tipo,vacuna FROM mascota WHERE tipo=”PERRO” AND vacuna=”N”;





No hay comentarios:

Publicar un comentario