Nas seções anteriores, você usou mysql
interativamente para fazer consultas e ver os resultados. Você
pode também executar mysql
no modo batch. Para
fazer isto, coloque os comando que você deseja executar em um
arquivo, e diga ao mysqld
para ler sua entrada
do arquivo:
shell> mysql < batch-file
Se você estiver executando o mysql
no Windows
e tiver algum caracter especial no arquivo que provocou o
problema, você pode fazer:
dos> mysql -e "source batch-file"
Se você precisa especificar parâmetros de conexão na linha de comando, o comando deve parecer com isto:
shell> mysql -h host -u user -p < batch-file
Enter password: ********
Quando você utilizar o mysql
desta forma,
você estará criando um arquivo script, depois executando o
script.
Se você quiser que o script continue mesmo se hopuver erros,
você deve usar a opção de linha de comando
--force
.
Por que usar um script? Existem várias razões:
Se você executa uma query repetidamente (digamos, todos os dias ou todas as semanas), transformá-lo em um script permite que você não o redigite toda vez que o executa.
Você pode gerar novas consultas a partir das já existentes copiando e editando os arquivos de script.
O modo batch pode também ser útil quando você estiver
desenvolvendo uma consulta, particularmente para comandos de
múltiplas linhas ou sequências de comandos com várias
instruções. Se você cometer um erro, não será necessário
redigitar tudo. Apenas edite seu arquivo script e corrija o
erro, depois diga ao mysql
para executá-lo
novamente.
Se você tem uma query que produz muita saída, você pode encaminhar a saída através de um páginador.
shell> mysql < batch-file | more
Você pode capturar a saída em um arquivo para processamento posterior:
shell> mysql < batch-file > mysql.out
Você pode distribuir seu script para outras pessoas para que elas possam executar os comandos também.
Algumas situações não permitem uso interativo, por exemplo,
quando você executa uma consulta através de um processo
automático (cron
job). Neste caso, você
deve usar o modo batch.
A formato padrão de saída é diferente (mais conciso) quando
você executa o mysql
no modo batch do que
quando você o usa interativamente. Por exemplo, a saída de
SELECT DISTINCT species FROM pet
se parece com
isto quando você o executa interativamente:
+---------+ | species | +---------+ | bird | | cat | | dog | | hamster | | snake | +---------+
Mas fica assim quando você o executa no modo batch:
species bird cat dog hamster snake
Se você desejar obter o formato de saída interativa no modo
batch, utilize mysql -t
. Para mostrar a saída
dos comandos que são executados, utilize mysql
-vvv
.
Você também pode utilizar scripts no prompt de linha de comando
mysql
usando o comando
source
:
mysql> source filename;
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.