Categorías: MySQL

Archivos batch – procesamiento por lotes

Es posible utilizar MySQL en modo batch o procesamiento por lotes.
El procesamiento por lotes permite ejecutar un conjunto de sentencias almacenadas en un archivo de manera secuencial.
Para utilizarlo tenemos que utilizar los parámetros de conexión que utilizamos en la línea de comandos, seguido del signo menor que y el nombre del archivo que tiene las sentencias en sql.

# Ejecutar las consultas del archivo
# archivo.sql en mysql con el usuario root
# sin contraseña
$ mysql -u root < archivo.sql

# Utilizar el usuario root
# con contraseña root
$ mysql -u root -proot < archivo.sql

# Utilizar el usuario root
# con contraseña root
# utilizar el puerto 8889 de localhost
$ mysql -h localhost -P 8889 -u root -proot < archivo.sql

Al hacer esto se ejecutan todos los comandos que se encuentran en el script. Si llega a existir un error en alguna de las sentencias se detiene la ejecución del archivo. Para ejecutar todas las sentencias – sin importar si hay errores – se le agrega la opción force.

# Mismos ejemplos
# que el bloque de código anterior
# utilizando --force para que,
# en caso de existir algún error en 
# una consulta, la ejecución del archivo
# continúe hasta el final.

$ mysql -u root --force < archivo.sql

$ mysql -u root -proot --force < archivo.sql

$ mysql -h localhost -P 8889 -u root -proot --force < archivo.sql

MySQL y el sistema operativo

Al utilizar MySQL para procesar archivos por lote se pueden utilizar las funciones del Sistema Operativo para trabajar con los resultados de una mejor manera.

Utilizar los paginadores more o less para examinar los resultados:

# Mostrar los resultados utilizando 
# el comando less

$ mysql -u root --force < archivo.sql | less

# Mostrar los resultados utilizando 
# el comando more 

$ mysql -u root --force < archivo.sql | more

Guardar los resultados en otro archivo para análisis posterior.

# Guardar los resultados de
# las consultas en el archivo resultados 
# del script

$ mysql -u root --force < archivo.sql > resultados-del-script.txt

¿Para qué utilizar scripts?

Para ahorrar trabajo y automatizar procesos.

Ejemplos:

Cuando se realiza(n) la(s) misma(s) consulta(s) de manera frecuente es mejor tener un script, ejecutarlo y revisar los resultados.
Si se van a realizar tareas similares es más fácil duplicar un script y editarlo.

Al escribir consultas que incluyen varias lineas es posible cometer algún error. Si la consulta está almacenada en un script es más fácil corregir esos errores porque no se tiene que teclear toda la consulta de nuevo.

Si se va a hacer respaldo de la base de datos cada determinado tiempo, en lugar de exportar las bases de datos manualmente, es más práctico hacer un script y ejecutarlo con cron.

Nota:
Al iniciar sesión a MySQL desde la línea de comandos no está asignada una base de datos.
Lo mismo sucede al mandar ejecutar un archivo batch. Por eso, al utilizar estos archivos,
es conveniente que en la parte superior se elija la base de datos sobre la cuál se van a realizar las consultas.

Es conveniente incluir las sentencias SET NAMES / SET CHARACTER SET para establecer el conjunto de caracteres que van a ser utilizados para el envío / recepción de datos entre MySQL y la conexión que estemos utilizando.

-- En el archivo batch
-- definimos la base de datos
-- que queremos utilizar. 

-- Si el texto de entrada o salida
-- tiene caracteres que no son ASCII
-- es conveniente utilizar SET NAMES
-- y SET CHARACTER SET

USE tutoriales;
SET NAMES utf8mb4;
SET CHARACTER SET utf8mb4;

-- Aquí van las sentencias SQL
-- como las que hemos hecho. 

SELECT nombre, email FROM usuarios;
eamexicano

Publicado por
eamexicano

Entradas recientes

Manipular registros de tabla con referencia a sí misma

En ocasiones cuando queremos manipular - borrar o editar - los registros de una tabla…

4 años hace

Organización de Proyectos

Si ya has hecho sitios o aplicaciones web es probable que tengas una manera de…

5 años hace

LAMP – Funcionamiento

En la publicación de LAMP Stack vimos los componentes de esta plataforma y las tareas…

5 años hace

Línea de comandos

En la introducción a MySQL muestro algunas aplicaciones que se pueden utilizar para interactuar con…

5 años hace

Borrado suave

Como hemos visto, al borrar un registro de una tabla ya no se puede recuperar.…

5 años hace

Conexión a MySQL desde PHP con mysqli

De manera general podemos realizar una conexión de PHP a MySQL en cuatro pasos. Abrir…

5 años hace

Esta web usa cookies.