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