MySQL Shell 8.0  /  MySQL Shell コードの実行  /  アクティブな言語

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

5.1 アクティブな言語

MySQL Shell では SQL、JavaScript または Python コードを実行できますが、一度にアクティブにできる言語は 1 つのみです。 アクティブモードによって、実行されるステートメントの処理方法が決まります:

  • SQL モードを使用している場合、ステートメントは SQL として処理され、実行のために MySQL サーバーに送信されます。

  • JavaScript モードを使用している場合、ステートメントは JavaScript コードとして処理されます。

  • Python モードを使用している場合、ステートメントは Python コードとして処理されます。

注記

バージョン 8.0.18 から、MySQL Shell は Python 3 を使用します。 システムでサポートされている Python 3 のインストールを含むプラットフォームの場合、MySQL Shell では使用可能な最新バージョンが使用され、サポートされている最小バージョンの Python 3.4.3 が使用されます。 Python 3 が含まれていないプラットフォームの場合、MySQL Shell には Python 3.7.4 がバンドルされます。MySQL Shell は、Python 2.6 および Python 2.7 とのコード互換性を維持しているため、これらの古いバージョンのいずれかが必要な場合は、適切な Python バージョンを使用してソースから MySQL Shell をビルドできます。

MySQL Shell を対話モードで実行する場合は、次のコマンドを入力して特定の言語をアクティブ化します: \sql, \js, \py

MySQL Shell をバッチモードで実行する場合は、次のコマンドラインオプションのいずれかを渡して特定の言語をアクティブ化します: --js--py または --sql。 何も指定されていない場合のデフォルトモードは JavaScript です。

MySQL Shell を使用して、ファイル code.sql のコンテンツを SQL として実行します。

shell> mysqlsh --sql < code.sql

MySQL Shell を使用して、ファイル code.js のコンテンツを JavaScript コードとして実行します。

shell> mysqlsh < code.js

MySQL Shell を使用して、ファイル code.py のコンテンツを Python コードとして実行します。

shell> mysqlsh --py < code.py

MySQL Shell 8.0.16 から、\sql コマンドの直後に SQL ステートメントを入力することで、別の言語がアクティブなときに単一の SQL ステートメントを実行できます。 例:

mysql-py> \sql select * from sakila.actor limit 3;

SQL ステートメントには追加の引用符は必要なく、ステートメントデリミタはオプションです。 このコマンドは、単一行の単一の SQL クエリーのみを受け入れます。 この形式では、MySQL Shell は\sql コマンドを入力した場合のようにはモードを切り替えません。 SQL ステートメントが実行されると、MySQL Shell は JavaScript または Python モードのままになります。

MySQL Shell 8.0.18 から、任意の言語がアクティブなときに、\system または\! コマンドの直後に実行するコマンドを入力することで、オペレーティングシステムコマンドを実行できます。 例:

mysql-py> \system echo Hello from MySQL Shell!

MySQL Shell は、オペレーティングシステムコマンドからの出力を表示するか、コマンドを実行できなかった場合はエラーを返します。