Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  言語構造  /  コメントの構文

9.6 コメントの構文

MySQL Server では、次の 3 つのコメントスタイルをサポートしています。

  • #文字から行末まで。

  • -- シーケンスから行末まで。MySQL では、-- (二重ダッシュ) のコメントスタイルは、2 番目のダッシュに少なくとも 1 つの空白または制御文字 (空白、タブ、改行など) を続ける必要があります。セクション1.7.2.5「コメントの先頭としての「--」」で述べているように、この構文は標準 SQL のコメントの構文とは少し異なります。

  • C プログラミング言語のように、/* シーケンスから次の */ シーケンスまで。この構文では、開始と終了のシーケンスは同じ行にある必要はないので、複数の行にわたってコメントを記すことができます。

次の例には、3 つのコメントスタイルがすべて示されています。

mysql> SELECT 1+1;     # This comment continues to the end of line
mysql> SELECT 1+1;     -- This comment continues to the end of line
mysql> SELECT 1 /* this is an in-line comment */ + 1;
mysql> SELECT 1+
/*
this is a
multiple-line comment
*/
1;

ネストされたコメントはサポートされていません。(一部の条件下では、ネストされたコメントが可能な場合がありますが、通常は可能ではなく、ユーザーはネストされたコメントを使用しないでください。)

MySQL Server では C-スタイルコメントのバリアントがいくつかサポートされています。これらでは、次の形式のコメントを使用することにより、MySQL 拡張を含んでいるが、移植性を維持しているコードを記述できます。

/*! MySQL-specific code */

この場合、MySQL Server は、ほかの SQL ステートメントのようにコメント内のコードを構文解析して実行しますが、ほかの SQL サーバーはその拡張機能を認識しません。たとえば、MySQL Server は次のステートメント内の STRAIGHT_JOIN キーワードを認識しますが、ほかのサーバーは認識しません。

SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...

!文字のあとにバージョン番号を追加すると、コメント内の構文は、MySQL のバージョンが指定されたバージョン番号以上の場合にだけ実行されます。次のコメント内の TEMPORARY キーワードは MySQL 3.23.02 以降のサーバーでのみ実行されます。

CREATE /*!32302 TEMPORARY */ TABLE t (a INT);

前述のコメントの構文は、mysqld サーバーによる SQL ステートメントの構文解析に適用されます。mysql クライアントプログラムは、ステートメントをサーバーに送信する前に、その一部の構文解析も実行します。(これは複数ステートメント入力行で、ステートメント境界を決定するために行われます。)

この形式のコメント (/*!12345 ... */) はサーバーに格納されません。ストアドルーチンのコメントにこの形式が使用されている場合、このコメントはサーバーで保持されません。

複数行にわたる /* ... */ コメント内で、\C などの短い形式の mysql コマンドを使用することはサポートされていません。