MySQL 5.1 リファレンスマニュアル :: 8 言語構造 :: 8.5 コメント構文
« 8.4 ユーザによって定義された変数

9 キャラクタセットサポート »
Section Navigation      [Toggle]
  • 8 言語構造
  • 8.1 リテラル値
  • 8.2 識別子
  • 8.3 MySQLでの予約語の扱い
  • 8.4 ユーザによって定義された変数
  • 8.5 コメント構文

8.5. コメント構文

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

  • ‘#’文字から行末まで続く。

  • ‘-- ’シーケンスから行末まで続く。MySQLでは ‘-- ’ (ダッシュ2つ)のコメントスタイルでは、2 つ目のダッシュの後にスペースを 1 つ以上挿入する必要があることに注意してください。(例えば スペース、タブ、新しい行など。)項1.8.5.7. 「コメントの開始記号としての'--'」で述べられたとおり、この構文は標準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 サーバではC-スタイルコメントの変形がいくつかサポートされています。これらはMySQL拡張を含むコードを記述することを可能にしますが、次のコメント形式を使用することで移行性を保持します。

/*! MySQL-specific code */

この場合、MySQLサーバは構文解析し、他のSQLステートメントのようにコメント内でのコードを実行しますが、他のSQLサーバはその拡張を認識しません。例えば、MySQL サーバは次のステートメント内で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クライアントプログラムはサーバに送信する前に、一部ステートメントの構文解析もします。(これは複数ステートメント入力行で、ステートメント境界表現を決定するために行われます。)

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates