新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > 数据库 > MySQL教程 > 正文:解析;怎样使用 “--”作为注释起始标记

解析;怎样使用 “--”作为注释起始标记

新客网 XKER.COM 2007-10-18 来源: limeinan 收藏本文

一些其他SQL数据库采用“--”作为注释开始标志。MySQL服务器采用“#”作为注释起始字符。对于MySQL服务器,也能使用C风格的注释:/*该处为注释*/。

MySQL服务器3.23.3和更高版本支持“--”注释风格,但要求注释后面跟1空格(或控制字符,如新行)。之所以要求使用空格,是为了防止与自动生成SQL查询有关的问题,它采用了类似下面的代码,其中,自动为“!payment!”插入“payment”的值:

 

UPDATE account SET credit=credit-!payment!

考虑一下,如果“payment”的值为负数如“-1”时会出现什么情况:

 

UPDATE account SET credit=credit--1

在SQL中“credit--1”是合法的表达式,但是,如果“--1”被解释为注释开始,部分表达式将被舍弃。其结果是,表达式的意义与预期的意义完全不同。

 

UPDATE account SET credit=credit该语句不会对值作任何更改!这表明,允许注释以“--”开始会产生严重后果。

 

采用MySQL服务器3.23.3和更高版本中的这类注释方法,“credit--1”实际上很安全。

 

另一个安全特性是,mysql命令行客户端将删除所有以“--”开头的行。

 

仅当使用高于3.23.3的MySQL时,下述信息才有意义:

 

如果有1个文本文件形式的SQL程序,该文件包含“--”注释,应按下述方式使用replace实用工具,将其转换为使用“#”字符的注释:

 

shell> replace " --" " #" < text-file-with-funny-comments.sql \         
| mysql db_name

 

而不是通常的:

 

shell> mysql db_name < text-file-with-funny-comments.sql

你也可以编辑注释文件,将“--”注释更改为“#”注释:

 

shell> replace " --" " #" -- text-file-with-funny-comments.sql

使用下述命令将其改回去:

 

shell> replace " #" " --" -- text-file-with-funny-comments.sql
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐