只有在您希望使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
#
,就像许多脚本语言一样,以及/* ... */
,就像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)
Oracle和SQL Server(以及DB2和其他数据库)都支持--和/* */(多行)注释标准。因此,在MySQL中使用相同的样式是一个好习惯,因为您可能会遇到在多个环境中编程的情况。
--后需要加空格是MySQL的奇怪之处,但这并不是什么大问题,因为它有助于清晰度。
当然,如果您正在大量使用perl和MySQL,则出于类似原因,您可以选择#注释...