Clonar base de datos MySQL

Clonar base de datos MySQL desde consola

Vamos a ver como podemos clonar rápidamente una BBDD para tener una copia de seguridad y así luego poder hacer todas las pruebas que queramos sin ningún tipo de miedo.

En el mundo de la programación, la base de todo es probar y probar, pero a veces, nos cargamos algo que funcionaba en pro de buscar alguna mejora y nos echamos las manos a la cabeza.

Y como el git no es aplicable a las bases de datos, que funciona muy bien con código pero ya sabemos lo problemático que es un control de versiones con bases de datos.

Pues no nos queda otra que hacernos una copia de la base de datos.

Hay muchas formas de hacerlo, pero las que sean a través de herramientas visuales, imagino que seran tan intuitivas que no hace falta ni explicarlas, así que voy a explicar como hacerlo desde consola

Primeramente volcaremos nuestra base de datos a un archivo con el siguiente comando:

Con esto lo que conseguiremos es un fichero de sentencias sql con todo el contenido de nuestra base de datos.

En el caso que solo quisieramos la estructura, añadiríamos la opción –no-data, tal que así:

Nota: En ambos casos estams usando el usuario root, si tuvieramos que usar otro usuario lo cambiamos y listo.

Luego abriremos una shell MySQL con el siguiente comando:

Todo esto lo haremos desde el mismo directorio, si queremos guardar el archivo en un directorio específico, deberemos marcarselo, sino simplemente haremos lo siguiente:

Con este comando creamos la base de datos que será la copia de la que hemos volcado.

Con este comando lo que hacemos es decirle a MySQL que use la base de datos que acabamos de crear.

Y con esto último, ya le decimos que cargue en la base de datos nueva que hemos creado, todos los datos que ya teníamos.

Veís que fácil? Realmente es sencillo ya que son muy pocos pasos.

Y ya tenems una copia de nuestra base de datos, para lo que queramos, para trastear, para copiarla en otro servidor, lo que queramos.

Espero que os haya servido este pequeño tutorial.

Y recordad! No olvidéis comentar! Vuestro código y en el Blog 😉

Comparte si te ha gustado:
Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Share on Tumblr
Tumblr
0Digg this
Digg

Eliminar registros duplicados de una tabla

Eliminar registros duplicados

Vamos a ver como eliminar registros duplicados de una tabla.

Primero de todo comentar que hay que tener mucho cuidado con este tipo de sentencias SQL ya que podemos eliminar, cosas que no queríamos.

Así que antes de nada deberíamos hacer una copia de seguridad.

Y una vez dicho esto, y espero que hayas hecho la copia de seguridad, vamos al lío.

Sigue leyendo Eliminar registros duplicados de una tabla

Comparte si te ha gustado:
Share on Facebook

Facebook

0Tweet about this on Twitter

Share on LinkedIn

Share on Tumblr

0Digg this

Reiniciar auto incremental en MySQL y PostgreSQL

Hoy vamos con un tip rápido, como reiniciar el auto incremental de MySQL o el serial de PostgreSQL, para esos casos en los que has tenido que hacer muchas pruebas en tu local y quieres subirlo luego todo a tu servidor y te encuentras que el auto incremental de tu tabla empieza a contar desde el 31337 y quieres reiniciar el id.

Realmente no ocurre nada, ya que va a seguir funcionando igual tu proyecto, pero ya que lo estás empezando de cero, aunque hayas hecho muchas pruebas, imagino que te gustaría que ese auto incremental, empiece a contar desde 1.

Así que aquí os voy a explicar como hacerlo para MySQL y PostgreSQL, que son las bases de datos que más uso y creo que las más extendidas.

Tenemos dos maneras de hacerlo, la primera que es eliminar toda la tabla y volverla a crear y la segunda, que es básicamente asignándole al auto incremental un valor en concreto, veamos la primera.

Sigue leyendo Reiniciar auto incremental en MySQL y PostgreSQL

Comparte si te ha gustado:
Share on Facebook

Facebook

0Tweet about this on Twitter

Share on LinkedIn

Share on Tumblr

0Digg this

Agrupar datos mostrando la última fecha

Cuando estamos trabajando, siempre se nos piden muchas consultas, para obtener todos los datos posibles, para poder obtener el máximo de información. Y una de las consultas que se me ha repetido muchas veces es, encontrar el total de pedidos obteniendo la última fecha del pedido y en otros sitios la petición de datos era diferente, pero con el mismo fin, datos agrupados con la fecha más reciente.

Datos de ejemplo

En este ejemplo, vamos a tener dos simples tablas, la tabla clientes, con los datos de los clientes:

id_clientenombreapellidosemail
1AlbertoMartínezoyagum@gmail.com
2JuanLopezjlopez@gmail.com
3MariaSanchezmsanchez@gmail.com
4PedroAlmodovarpalmodovar@gmail.com
5AlbertoMartínezoyagum@gmail.com

 

Y la tabla pedidos con los datos de los pedidos

idfecha_creacionfecha_updateprecio_totalid_persona
12017-02-06 21:28:012017-02-05 21:28:10501
22017-02-05 21:38:482017-02-05 21:38:48464
32017-02-05 21:38:502017-02-05 21:38:501151
42017-02-05 21:38:502017-02-05 21:38:50803
52017-02-05 21:38:502017-02-05 21:38:501353
62017-02-05 21:38:502017-02-05 21:38:50505
72017-02-05 21:38:502017-02-05 21:38:501462
82017-02-05 21:38:502017-02-05 21:38:50791
92017-02-05 21:38:512017-02-05 21:38:51564
102017-02-05 21:38:512017-02-05 21:38:511143
112017-02-05 21:38:512017-02-05 21:38:51915
122017-02-05 21:38:512017-02-05 21:38:511283
132017-02-05 21:38:512017-02-05 21:38:511483
142017-02-05 21:38:522017-02-05 21:38:52844
152017-02-05 21:38:532017-02-05 21:38:531292
162017-02-05 21:38:532017-02-05 21:38:531261
172017-02-05 21:38:532017-02-05 21:38:53904
182017-02-05 21:38:532017-02-05 21:38:531094
192017-02-05 21:38:542017-02-05 21:38:541274
202017-02-05 21:38:542017-02-05 21:38:54783
212017-02-05 21:38:542017-02-05 21:38:541001
222017-02-05 21:38:542017-02-05 21:38:54623
232017-02-05 21:38:542017-02-05 21:38:54433
242017-02-05 21:38:552017-02-05 21:38:551261
252017-02-05 21:38:552017-02-05 21:38:551032

Tengo más datos en la tabla de pedidos, pero es para que os hagáis una idea.

 

La consulta SQL

Y ahora pasaremos a obtener la consulta para conseguir el total de pedidos de los clientes y la fecha de la última vez que compraron

Así que aquí os pongo como sería la consulta SQL:

Resultado

Y este sería el resultado de la consulta.

total_compradoultima_fecha_compranombreapellidosemail
152017-02-06 21:28:01AlbertoMartínezoyagum@gmail.com
162017-02-05 21:39:10JuanLopezjlopez@gmail.com
192017-02-05 21:39:04MariaSanchezmsanchez@gmail.com
202017-02-05 21:39:09PedroAlmodovarpalmodovar@gmail.com
152017-02-05 21:39:09AlbertoMartínezoyagum@gmail.com

Comparte si te ha gustado:
Share on Facebook

Facebook

0Tweet about this on Twitter

Share on LinkedIn

Share on Tumblr

0Digg this

Buscar registros duplicados con MySQL

Vamos a ver como buscar registros duplicados usando MySQL.

En este ejemplo tenemos la siguiente tabla de personas:

id_personaNombreApellidosemail
1AlbertoMartínez Roviraoyagum@gmail.com
2JuanLópez Romanjlopez@gmail.com
3MaríaSanchez Sanchezmsanchez@gmail.com
4PedroAlmodovarpalmodovar@gmail.com
5AlbertMartínezoyagum@gmail.com

Y como podeis ver a simple vista, hay emails que se encuentran repetidos, aquí es fácil de ver porque son muy pocos registros.

Pero primero, no nos vamos a fiarnos solo de nuestra vista y segundo, ¿porqué vamos a hacer nosotros el trabajo si lo puede hacer una máquina?

Así que realizaremos la siguiente consulta para saber cuantos e-mails hay repetidos:

En la consulta le hemos dicho que nos devuelva el total de emails repetidos que hay con lo cual nos devolverá lo siguiente:

total_repetidosemail
2oyagum@gmail.com

Como veis lo que nos retorna la consulta es el número de total de repetidos que tenemos y el email en cuestión, así podemos saber cuantos hay repetidos y cual es el repetido.

Espero que os haya servido de ayuda.

Recordad! No olvidéis de comentar! Vuestro código y en el Blog! 😉

Comparte si te ha gustado:
Share on Facebook

Facebook

0Tweet about this on Twitter

Share on LinkedIn

Share on Tumblr

0Digg this