En las secciones previas mysql se utilizó interactivamente para ejecutar consultas y ver resultados. También se puede ejecutar en un modo por lotes. Para ello, los comandos que se desea ejecutar deben colocarse en un archivo, y posteriormente indicarle a mysql que acepte como entrada el contenido del mismo.
shell> mysql < batch-file
Si está ejecutando mysql en Windows y el archivo contiene algunos caracteres que causan problemas, el comando es así:
C:\> mysql -e "source batch-file"
Si se necesitara incluir parámetros de conexión en la línea de comandos, el comando podría verse así:
shell> mysql -hhost-uuser-p <batch-fileEnter password: ********
Cuando se procede de este modo lo que se está haciendo es crear un archivo script, que luego es ejecutado.
Si se desea que el script continúe su ejecución aunque alguna
de sus sentencias produzca errores, se debe usar la opción de
línea de comandos --force.
¿Por qué usar scripts? Algunas razones:
Si se utiliza una consulta repetidamente (por ejemplo cada día o cada semana), hacer un script evitará volver a teclearla cada vez que se desea ejecutarla.
Se pueden crear nuevas consultas a partir de otras existentes que se le parezcan, copiando y editando el archivo de script.
El modo por lotes también puede ser útil cuando se está creando una consulta, en especial si tiene comandos de múltiples líneas o múltiples sentencias. Si se comete un error, no se necesita reteclearlo todo, sino sólo editar el script para corregir el error, y volver a ejecutarlo mediante mysql.
Si se ejecuta una consulta que produce una salida muy extensa, se puede ejecutar a traves de un paginador en lugar de verla desaparecer rápidamente por la parte superior de la pantalla:
shell> mysql < batch-file | more
Se puede enviar la salida a un archivo, para posterior proceso:
shell> mysql < batch-file > mysql.out
Se puede distribuir el script a otras personas, para que puedan tambien ejecutar los comandos.
Algunas situaciones no permiten la interactividad, por ejemplo, cuando se ejecuta una consulta a través de una tarea de cron (en Unix). En este caso, debe emplearse el modo por lotes.
El formato de salida es más breve cuando se usa modo por lotes
que cuando se utiliza mysql interactivamente.
Por ejemplo, la salida devuelta para SELECT DISTINCT
species FROM pet se ve así cuando se ejecuta en modo
interactivo:
+---------+ | species | +---------+ | bird | | cat | | dog | | hamster | | snake | +---------+
Mientras que, en modo por lotes, presenta este aspecto:
species bird cat dog hamster snake
Si desea obtener el formato por lotes para una salida producida
interactivamente, utilice mysql -t. Para
incluir en la salida los comandos que se ejecutan, utilice
mysql -vvv.
También pueden ejecutarse archivos de script desde el prompt
mysql utilizando los comandos
source o \.
mysql> source filename; mysql> \. filename
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.
