按照documentation,有两种方法,你可以到行MySQL中结束注释:MySql的注释语法 - 什么是“#”之间的区别“ - ”
"#"
"-- "
这些有什么区别吗?
如果是这样,我应该什么时候使用一个和另一个?
如果没有,有谁知道为什么都支持?
对我来说似乎很陌生,特别是当连字版本与标准SQL Syntax略有不同时。
按照documentation,有两种方法,你可以到行MySQL中结束注释:MySql的注释语法 - 什么是“#”之间的区别“ - ”
"#"
"-- "
这些有什么区别吗?
如果是这样,我应该什么时候使用一个和另一个?
如果没有,有谁知道为什么都支持?
对我来说似乎很陌生,特别是当连字版本与标准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支持一些其他评论格式以适应各种程序的习惯mmers:#
就像很多脚本语言一样,/* ... */
也像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,那么你可以选择类似的理由#评论...
[其中#之间的差异的一个例子 - 事项] (https://stackoverflow.com/a/4300676/6085060) –