поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    3.6. Использование 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;
    
     
    © 1997-2005 PHP Club Team
    Rambler's Top100