Outros bancos de dados SQL usam '--
' para
iniciar comentários. O MySQL usa
‘#
’ como o caractere para
início de comentário, mesmo se a ferramenta de linha de
comando mysql
remover todas linhas que
começam com '--
'. Você também pode usar o
comentário no estilo C /*isto é um
comentário*/
com o MySQL Server. See
Secção 6.1.6, “Sintaxe de Comentários”.
O MySQL Server versão 3.23.3 e superior suporta o estilo de
comentário '--
' somente se o comentário for
seguido por um caractere de espaço (ou por um caracter de
controle como uma nova linha). Isto ocorre porque este estilo
de comentário causou muitos problemas com queries SQL geradas
automaticamente que usavam algo como o código seguinte, onde
automaticamente erá inserido o valor do pagamento para
!pagamento!
:
UPDATE nome_tabela SET credito=credito-!pagamento!
O que você acha que irá acontecer quando o valor de
pagamento
for negativo? Como
1--1
é legal no SQL, nós achamos
terrível que '--
' signifique início de
comentário.
Usando a nossa implementação deste método de comentário no
MySQL Server Version 3.23.3 e posterior, 1-- Isto é
um comentário
é atualmente seguro.
Outro recurso seguro é que o cliente de linha de comando
mysql
remove todas as linhas que iniciam
com '--
'.
A seguinte discussão somente interessa se você estiver executando uma versão do MySQL inferior a versão 3.23:
Se você tem um programa SQL em um arquivo texto que contêm
comentários '--
' você deverá usar:
shell>replace " --" " #" < arquivo-texto-com-comentário.sql \
| mysql banco-de-dados
No lugar de:
shell> mysql banco-de-dados < arquivo-texto-com-comentario.sql
Você também pode editar o próprio arquivo de comandos
alterando os comentários '--
' para
‘#
’:
shell> replace " --" " #" -- arquivo-texto-com-comentario.sql
Desfaça utilizando este comando:
shell> replace " #" " --" -- arquivo-texto-com-comentario.sql
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.