documentationによると、MySql の行末にコメントする方法は 2 つあります。
"#"
"-- "
これらの間に違いはありますか?
もしそうなら、いつどちらを使うべきですか?
そうでない場合、両方がサポートされている理由を誰か知っていますか?
特にハイフンでつながれたバージョンがまだ標準のSQL Syntaxとわずかに異なる場合、私には奇妙に思えます。
documentationによると、MySql の行末にコメントする方法は 2 つあります。
"#"
"-- "
これらの間に違いはありますか?
もしそうなら、いつどちらを使うべきですか?
そうでない場合、両方がサポートされている理由を誰か知っていますか?
特にハイフンでつながれたバージョンがまだ標準のSQL Syntaxとわずかに異なる場合、私には奇妙に思えます。
SQL を移植可能にしたい場合にのみ重要です。たとえば、--
コメントは Sqlite と Postegresql では問題ありませんが、問題あり#
ません。あなたの最善の策は--
、スペースの後に使用することです。(私が覚えている限り、他のものはほとんど見たことがありません)
あなたが提供したリンクが明確に説明しているように、それ--
は標準のSQL「コメント区切り」です。MySQL が標準から逸脱しているのは、コメントとして認識されるために後にスペースが必要なことです。--
「標準」SQL ではこれは必要ありません。
例を挙げると、次のコードで--
は、 はコメント トークンとして認識されます。
mysql> CREATE TABLE T(C int); -- This is my new table
Query OK, 0 rows affected (0.18 sec)
しかし、対話型インタープリターが の後 --
にスペースがないと、どのように誤動作するかに注意してください。
mysql> CREATE TABLE T(C int); --This is my new table
Query OK, 0 rows affected (0.24 sec)
-> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--This is my new table' at line 1
#
MySQL は、多くのスクリプト言語や/* ... */
Cなど、さまざまなプログラマーの習慣に対応するために、他のコメント形式をサポートして//
います。
mysql> CREATE TABLE T(C int); /* This is my new table */
Query OK, 0 rows affected (0.22 sec)
mysql> CREATE TABLE T(C int); # This is my new table
Query OK, 0 rows affected (0.24 sec)