1.7.2.4' - '作为评论开始
标准SQL使用C语法/* this is a comment */
进行注释,MySQL Server也支持这种语法。MySQL还支持这种语法的扩展,可以将MySQL特定的SQL嵌入到注释中,如第9.6节“注释语法”中所述。
标准SQL使用“--
”作为开始注释序列。MySQL Server#
用作开始注释字符。MySQL Server还支持--
注释样式的变体。也就是说,--
开始 - 注释序列后面必须有一个空格(或一个控制字符,如换行符)。需要空间来防止使用自动生成的SQL查询的问题,这些SQL查询使用以下结构,我们会自动插入以下付款的值payment
:
UPDATE帐户SET credit =信用付款
考虑如果payment
有负值会发生什么,如-1
:
UPDATE帐户SET credit = credit - 1
credit--1
是SQL中的有效表达式,但--
被解释为注释的开始,表达式的一部分被丢弃。结果是一个声明与意图完全不同的意思:
UPDATE帐户SET credit = credit
该声明根本不产生价值变动。这说明允许评论开始--
可能会造成严重后果。
使用我们的实现需要一个空格,--
以便在MySQL服务器中被识别为开始注释序列。因此,credit--1
使用安全。
另一个安全的功能是mysql命令行客户机忽略开头的行--
。