PHP скрипты

MySQL

Apache

phpMyADmin

2.24: Использование клиента MySQL в пакетном режиме

Главная Страница » Книги по PHP » MySQL уроки для начинающих с нуля » Использование клиента MySQL в пакетном режиме

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

shell> mysql < batch-file

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

shell> mysql -h hostname -u ваш_логин -p < batch-file
Enter password: ********

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

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

  • если вы выполняете запрос неоднократно (скажем, каждый день или каждую неделю), скрипт позволяет вам избежать ввода запроса каждый раз, когда вы его выполняете;
  • вы можете генерировать новые запросы из похожих уже существующих, копируя и редактируя файлы скриптов;
  • пакетный рёжим также может быть полезен в то время, когда вы разрабатываете запрос, особенно для команд со многими строками или многооператорных последовательностей команд. Если вы сделаете ошибку, вы не должны повторно вводить все. Только отредактируйте скрипт, чтобы исправить ошибку, затем сообщите, чтобы mysql выполнил его снова;
  • если вы имеете запрос, который производит много вывода, вы можете выполнять вывод через pager, вместо того чтобы мучиться с экраном:shell> mysql < batch-file | more
  • вы можете даже захватывать вывод в файл для дальнейшей обработки. Например, направим вывод скрипта в файл mysql.out:shell> mysql < batch-file > mysql.out
  • вы можете передавать ваш скрипт другим людям, чтобы они смогли выполнять команды точно так же;
  • некоторые ситуации не учитывают интерактивного использования, например, когда вы выполняете запрос из планировщика заданий операционной системы. В этом случае вы должны использовать пакетный режим.

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

+---------+
| species |
+---------+
| птичка  |
| кошка   |
| собака  |
| хомяк   |
| змея    |
+---------+

Но когда выполнен в пакетном режиме, он подобен уже вот такому образцу:

species
птичка
кошка
собака
хомяк
змея

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

Поделиться с друзьями