Spec-Zone.ru › MySQL 5.7

3.5 Использование mysql в пакетном режиме

В предыдущих разделах вы использовали mysql интерактивно для ввода команд и просмотра результатов. Вы также можете запустить mysql в пакетном режиме. Для этого поместите команды, которые вы хотите выполнить, в файл, а затем укажите mysql прочитать входные данные из файла:

$> mysql < batch-file

Если вы работаете с mysql под Windows и у вас есть некоторые специальные символы в файле, которые вызывают проблемы, вы можете сделать так:

C:\> mysql -e "source batch-file"

Если вам нужно указать параметры подключения в командной строке, команда может выглядеть так:

$> mysql -h host -u user -p < batch-file
Enter password: ********

Когда вы используете mysql таким образом, вы создаёте скрипт, а затем выполняете его.

Если вы хотите, чтобы скрипт продолжался, даже если некоторые из команд в нём вызывают ошибки, вы должны использовать опцию командной строки --force.

Почему использовать скрипт? Вот несколько причин:

  • Если вы многократно выполняете запрос (скажем, каждый день или каждую неделю), создание скрипта позволит вам избежать повторного ввода каждой команды при каждом выполнении.

  • Вы можете генерировать новые запросы из существующих, похожих, копируя и редактируя файлы скриптов.

  • Пакетный режим также может быть полезен при разработке запроса, особенно для многострочных или многокомпонентных последовательностей команд. Если вы допустили ошибку, вам не придётся переписывать всё. Просто отредактируйте свой скрипт, чтобы исправить ошибку, затем попросите mysql выполнить его снова.

  • Если у вас есть запрос, который генерирует много вывода, вы можете выполнить вывод через вывод страниц, а не наблюдать, как он прокручивается с верхней части экрана:

    $> mysql < batch-file | more
    
  • Вы можете перенаправить вывод в файл для дальнейшей обработки:

    $> mysql < batch-file > mysql.out
    
  • Вы можете распространять свой скрипт другим людям, чтобы они тоже могли выполнить команды.

  • В некоторых ситуациях интерактивное использование недоступно, например, когда вы выполняете запрос из задания cron. В этом случае вы должны использовать пакетный режим.

Формат вывода по умолчанию отличается (более лаконичный) при выполнении mysql в пакетном режиме, чем при интерактивном использовании. Например, вывод SELECT DISTINCT species FROM pet выглядит так, когда mysql используется интерактивно:

+---------+
| species |
+---------+
| bird    |
| cat     |
| dog     |
| hamster |
| snake   |
+---------+

В пакетном режиме вывод выглядит так:

species
bird
cat
dog
hamster
snake

Если вы хотите получить интерактивный формат вывода в пакетном режиме, используйте mysql -t. Чтобы отобразить в выводе выполняемые команды, используйте mysql -v.

Вы также можете использовать скрипты из приглашения mysql с помощью команды source или команды \.:

mysql> source filename;
mysql> \. filename

Дополнительную информацию см. в Разделе 4.5.1.5, «Выполнение SQL-команд из текстового файла».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/batch-mode.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API