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 № 1Ma 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...