В предыдущих разделах было
показано, как использовать
mysql в интерактивном
режиме, вводя запросы и тут же
просматривая результаты. Запускать
mysql можно и в пакетном
режиме. Для этого нужно собрать все
команды в один файл и передать его
на исполнение mysql:
shell> mysql < batch-file
Если вы работаете с mysql в
ОС Windows, и некоторые из специальных
символов, содержащихся в пакетном
файле, могут вызвать проблемы,
воспользуйтесь следующей командой:
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;
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.
© 1995-2005 MySQL AB. All rights reserved.
