Spec-Zone.ru › MySQL 8.4

5.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

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

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

Spec-Zone.ru

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