2013-07-09 47 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,那麼你可以選擇類似的理由#評論...

相關問題