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クライアントプログラムはサーバに送信する前に、一部ステートメントの構文解析もします。(これは複数ステートメント入力行で、ステートメント境界表現を決定するために行われます。)