2013-07-09 49 views
4

按照documentation,有两种方法,你可以到行MySQL中结束注释:MySql的注释语法 - 什么是“#”之间的区别“ - ”

  • "#"
  • "-- "

这些有什么区别吗?

如果是这样,我应该什么时候使用一个和另一个?

如果没有,有谁知道为什么都支持?

对我来说似乎很陌生,特别是当连字版本与标准SQL Syntax略有不同时。

+0

[其中#之间的差异的一个例子 - 事项] (https://stackoverflow.com/a/4300676/6085060) –

回答

12

它只是真的很重要,如果你想你的SQL是可移植的。例如--注释在Sqlite和Postegresql中是可以的,而#则不是。您最好的选择是使用--以下的空间。 (据我所知,我几乎没见过别的东西)

+0

许多数据库还支持/ *块注释* /,但它最好使用 - 用于便携式。 –

4

由于您提供的链接清楚地解释了它,--是标准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) 
0

Oracle和SQL Server(以及DB2和其他)都支持 - 和/ * * /(多行)注释标准。因此,在MySQL中使用相同的样式是一种很好的习惯,因为您可能会遇到在多个环境中进行编程的情况。

之后的空间需求是MySQL的怪胎,但它不是什么大不了的,因为它有助于清晰。

如果,当然,你使用了大量的Perl和MySQL,那么你可以选择类似的理由#评论...

相关问题