MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

3.5 バッチモードでの MySQL の使用

前のセクションでは、mysql を対話形式で使用してステートメントを入力し、結果を表示しました。 mysql をバッチモードで実行することもできます。 これを行うには、実行するステートメントをファイルに入れてから、その入力をファイルから読み取るように mysql に指示します:

shell> mysql < batch-file

mysql を Windows で実行する場合に、ファイル内の一部の特殊文字によって問題が発生するときは、次のように実行できます。

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

コマンド行で接続パラメータを指定する必要がある場合、コマンドは次のようになります。

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

この方法で mysql を使用する場合は、スクリプトファイルを作成してから、そのスクリプトを実行することになります。

スクリプト内の一部のステートメントでエラーが発生してもスクリプトを続行する場合は、--force コマンド行オプションを使用します。

なぜスクリプトを使用するのでしょうか。 いくつかの理由を次に示します。

mysql をバッチモードで実行したときのデフォルトの出力形式は、インタラクティブに使用した場合とは異なり、より簡潔になります。 たとえば、mysql をインタラクティブに実行すると、SELECT DISTINCT species FROM pet の出力は次のようになります。

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

これに対し、バッチモードの出力は次のようになります。

species
bird
cat
dog
hamster
snake

バッチモードで、インタラクティブ出力形式のデータを取得するには、mysql -t を使用します。 実行されるステートメントを出力にエコーするには、mysql -v を使用します。

source コマンドまたは \. コマンドを使用すると、mysql プロンプトからでもスクリプトを使用できます。

mysql> source filename;
mysql> \. filename

詳細については、セクション4.5.1.5「テキストファイルから SQL ステートメントを実行する」を参照してください。