|
Документация MySQL
В предыдущих разделах было показано, как использовать 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;
Документация Apache Документация MySQL Документация PHP
|