Algunas otras bases de datos SQL utilizan
'--
' para comenzar comentarios. MySQL
Server utiliza '#
' como carácter para
comenzar comentarios. Puede utilizar comentarios estilo C
/*this is a comment */
con MySQL Server.
Consulte Sección 9.5, “Sintaxis de comentarios”.
MySQL Server 3.23.3 y posteriores permiten comentarios del
estilo '--
', mientras el comentario esté
seguido de un carácter (o por un carácter de controlo como
una nueva línea). Se necesita dicho espacio para evitar
problemas con consultas SQL generadas automáticamente que
usen algo parecido al código a continuación, donde se
inserta automáticamente el valor de pago para
!payment!
:
UPDATE account SET credit=credit-!payment!
Piense acerca de lo que ocurre si el valor de
payment
es un valor negativo como
-1
:
UPDATE account SET credit=credit--1
credit--1
es una expresión legal en SQL,
pero si --
se interpreta como parte de un
comentario, una parte de la expresión se descarta. El
resultado es un comando que tiene un significado completamente
distinto al deseado:
UPDATE account SET credit=credit
Este comando no produce ningún cambio en absoluto! Lo cual
ilustra que permitir comentaros que empiecen con
'--
' puede tener serias consecuencias.
Usando la implementación de este método de comentarios en
MySQL Server desde 3.23.3, credit--1
es
seguro.
Otra medida de seguridad es que el cliente de líneas de
comando mysql elimina todas las líneas que
empiecen con '--
'.
La siguiente información sólo es relevante si utiliza versiones anteriores a la 3.23.3:
Si tiene un programa SQL en un fichero de texto que contenga
comentarios del estilo '--
', debería
utilizar la utilidad replace para convertir
los comentarios antiguos en caracteres '#
'
de la siguiente forma:
shell> replace " --" " #" < text-file-with-funny-comments.sql \
| mysql db_name
en lugar del usual:
shell> mysql db_name
< text-file-with-funny-comments.sql
También puede editar el fichero "a mano" para cambiar los
comentarios '--
' a '#
':
shell> replace " --" " #" -- text-file-with-funny-comments.sql
Vuelva a cambiarlos con el comando:
shell> replace " #" " --" -- text-file-with-funny-comments.sql
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.