/ / MySql Składnia komentarza - Jaka jest różnica pomiędzy „#” i „-” - mysql, sql, składnia, komentarze

Składnia komentarzy MySql - Jaka jest różnica między "#" i "-" - mysql, sql, syntax, comments

Według dokumentacja, istnieją dwa sposoby komentowania końca linii w MySql:

  • "#"
  • "-- "

Czy jest jakaś różnica między nimi?

Jeśli tak, kiedy powinienem używać jednego zamiast drugiego?

Jeśli nie, czy ktoś wie, dlaczego oba są obsługiwane?

Wydaje mi się to dziwne, zwłaszcza, że ​​wersja z łącznikami nadal nieznacznie różni się od standardowej Składnia SQL.

Odpowiedzi:

12 dla odpowiedzi № 1

Ma to naprawdę znaczenie tylko wtedy, gdy chcesz, aby Twój SQL był przenośny. Na przykład -- komentarze są OK w Sqlite i Postegresql póki # nie są. Najlepszym rozwiązaniem jest użycie -- ze spacją. (O ile pamiętam, prawie nigdy nie widziałem niczego innego)


4 dla odpowiedzi nr 2

Ponieważ link, który podałeś, jasno to wyjaśnia -- jest standardowym „separatorem komentarza” SQL. Tam, gdzie MySQL odchodzi od standardu, wymagane jest rozszerzenie przestrzeń po -- zostać uznane za komentarz. „Standardowy” SQL tego nie wymaga.

Aby podać przykład, w poniższym kodzie -- jest rozpoznawany jako token komentarza:

mysql> CREATE TABLE T(C int);   -- This is my new table
Query OK, 0 rows affected (0.18 sec)

Zwróć jednak uwagę, jak interaktywny tłumacz zachowuje się niewłaściwie bez spacji po --:

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 obsługuje inny format komentarzy, aby dostosować się do przyzwyczajeń różnych programistów: # jak wiele języków skryptowych i /* ... */ jak C. To dość zdumiewające // nie jest jeszcze ich częścią.

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 dla odpowiedzi № 3

Zarówno Oracle, jak i SQL Server (a także DB2 iinne) obsługują standard komentarzy -- i /* */ (wieloliniowy). Dlatego dobrym zwyczajem jest używanie tego samego stylu w MySQL, ponieważ prawdopodobnie napotkasz sytuacje, w których programujesz w wielu środowiskach.

Wymaganie spacji po -- jest dziwactwem MySQL, ale nie jest to wielka sprawa, ponieważ pomaga w przejrzystości.

Jeśli oczywiście używasz dużo Perla i MySQL, możesz wybrać komentarz # z podobnych powodów...