В предыдущих разделах было показано, как использовать mysql в интерактивном режиме, вводя запросы и тут же просматривая результаты. Запускать mysql можно и в пакетном режиме. Для этого нужно собрать все команды в один файл и передать его на исполнение mysql:
shell> mysql < batch-file
dos> mysql -e "source batch-file"
Если необходимо указать параметры соединения в командной строке, она может иметь следующий вид:
shell> mysql -h host -u user -p < batch-file Enter password: ********
Работая с mysql таким образом, вы, в сущности, создаете сценарий и затем исполняете его.
Если нужно продолжать обработку сценария даже при обнаружении в нем ошибок, воспользуйтесь параметром командной строки --force.
Зачем вообще нужны сценарии? Причин тому несколько:
shell> mysql < batch-file | more
shell> mysql < batch-file > mysql.out
По умолчанию при работе с mysql в пакетном режиме используется более сжатый формат вывода результатов, чем при интерактивной работе. В интерактивном режиме результаты работы запроса SELECT DISTINCT species FROM pet выглядят так:
+---------+ | species | +---------+ | bird | | cat | | dog | | hamster | | snake | +---------+
А в пакетном - вот так:
species bird cat dog hamster snake
Если вам нужно, чтобы в пакетном режиме программа выводила данные так же, как и в интерактивном, воспользуйтесь ключом mysql -t. Включить "эхо" исполняемых команд можно с помощью ключа mysql -vvv.
В командную строку mysql можно включать и сценарии - при помощи команды source:
mysql> source filename;