Buenas tardes queridos lectores, el día de hoy hablaremos de un tema importante, como clonar o copiar una tabla de una base de datos de MySQL (MariaDB). Pero vamos pensando, ¿para que querríamos tener dos tablas exactamente iguales?, puede ser para tener algún respaldo antes de realizar algún UPDATE o algún DELETE, cuidar nuestra integridad de datos, y, en caso de habernos equivocado, tener la tabla copia que habíamos creado, cabe señalar la importancia de la integridad de datos, si tenemos los datos enlazados correctamente puede servir como una primera red de seguridad, pero no esta de más aprender a clonar las tablas, existen varias maneras
Usando la sentencia SELECT
Podemos clonar una tabla utilizando la sentencia SELECT, es la más sencilla y rápida de todas, pero tiene varias desventajas
Ventajas
- Es mas fácil de utilizar
- El clonado o copia de la tabla es mucho más rápido
Desventajas
- No traspasa las llaves ni los índices de las tablas, es decir, no tendra ninguna PRIMARY KEY, ni tampoco FOREIGN KEYS
- No tendrá ningún AUTO_INCREMENT, es decir, si la tabla original tenía un campo auntoincrementable, esta tabla definitivamente no lo tendrá
- Tampoco traslada las definiciones DEFAULT, por lo tanto los campos en la tabla copia no tendrán ningun campo configurado con datos por defecto
- Solo llena la tabla copia con los datos devueltos en la consulta SELECT, así que puede ser que no contenga nada
Pues bien, sabiendo que este tipo de copia con la sentencia SELECT crea una copia muy básica de la tabla, vamos a empezar a explicarlo, pero sobre todo a hacerlo que es lo que nos gusta y como aprendemos
Ejercicio 1
Crear una copia simple de la tabla ESTADIOS utilizando la sentencia SELECT, y únicamente los estadios de México
describe estadios;
Como vemos esa es la estructura de la tabla original, ahora veremos sus datos con la sentencia SELECT
select * from estadios;
CREATE TABLE ESTADIOSMEXICO SELECT * FROM estadios where codigopais='MX';
describe estadiosmexico
Como ven, ya no tiene esta nueva tabla ninguna llave, el AUTO_INCREMENT también se perdió, ahora veamos los datos
select * from estadiosmexico
Usando la sentencia LIKE
Ahora, vamos a realizar la copia con la sentencia LIKE, pero vamos a describir las ventajas y desventajas de éste método
Ventajas
- Copia la estructura de la tabla con sus llaves correspondientes
- Copia los AUTOINCREMENT de los campos
- Copia los valores DEFAULT de los campos
Desventajas
- Copia solo la estructura de la tabla, más no sus datos
Pues bien, sabiendo que esta sentencia, nos copiará la estructura de la tabla, vamos a copiar la tabla PARTIDOS
Ejercicio 2
Crear una copia de la estructura de la tabla EQUIPOS utilizando la sentencia LIKE
describe equipos
CREATE TABLE equipos2 LIKE equipos;
Con esta sentencia, hemos creado una tabla llama EQUIPOS2 pero sin ningún dato, aunque conservando su estructura, veamos:
describe equipos2
select * from equipos2
Al ejecutar el select podemos ver que la tabla, estará totalmente vacía, aunque conserva su estructura, ahora sería llenarla de una manera natural con el comando SELECT
insert into equipos2
select * from equipos where codigopais='MX'
select * from equipos2
Saludos
No hay comentarios.:
Publicar un comentario