DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) ansi-diff-comments

Info Catalog (mysql.info) ansi-diff-views (mysql.info) differences-from-ansi
 
 1.9.5.7 '`--'' as the Start of a Comment
 ........................................
 
 Standard SQL uses the C syntax `/* this is a comment */' for comments,
 and MySQL Server supports this syntax as well. MySQL also support
 extensions to this syntax that allow MySQL-specific SQL to be embedded
 in the comment, as described in  comments.
 
 Standard SQL uses ‘-’ as a start-comment sequence. MySQL Server uses
 ‘`#'’ as the start comment character. MySQL Server 3.23.3 and up
 also supports a variant of the ‘`--'’ comment style. That is, the
 ‘`--'’ start-comment sequence must be followed by a space (or by a
 control character such as a newline). The space is required to prevent
 problems with automatically generated SQL queries that use constructs
 such as the following, where we automatically insert the value of the
 payment for `!payment!':
 
      UPDATE account SET credit=credit-!payment!
 
 Consider about what happens if `payment' has a negative value such as
 `-1':
 
      UPDATE account SET credit=credit--1
 
 `credit--1' is a legal expression in SQL, but ‘`--'’ is interpreted
 as the start of a comment, part of the expression is discarded. The
 result is a statement that has a completely different meaning than
 intended:
 
      UPDATE account SET credit=credit
 
 The statement produces no change in value at all! This illustrates that
 allowing comments to start with ‘`--'’ can have serious
 consequences.
 
 Using our implementation of require a following space for ‘`--'’ to
 be recognized as a start-comment sequence in MySQL Server 3.23.3 and up,
 `credit--1' is actually safe.
 
 Another safe feature is that the `mysql' command-line client ignores
 lines that start with ‘`--'’.
 
 The following information is relevant only if you are running a MySQL
 version earlier than 3.23.3:
 
 If you have an SQL script in a text file that contains ‘`--'’
 comments, you should use the `replace' utility as follows to convert
 the comments to use ‘`#'’ characters before executing the script:
 
      shell> replace " --" " #" < text-file-with-funny-comments.sql \
               | mysql DB_NAME
 
 That is safer than executing the script in the usual way:
 
      shell> mysql DB_NAME < text-file-with-funny-comments.sql
 
 You can also edit the script file `in place' to change the ‘`--'’
 comments to ‘`#'’ comments:
 
      shell> replace " --" " #" -- text-file-with-funny-comments.sql
 
 Change them back with this command:
 
      shell> replace " #" " --" -- text-file-with-funny-comments.sql
 
 See  replace-utility.
 
Info Catalog (mysql.info) ansi-diff-views (mysql.info) differences-from-ansi
automatically generated byinfo2html