zoukankan      html  css  js  c++  java
  • 1.7.2.4'-'作为注释的开始

    标准SQL使用C语法/* this is a comment */进行注释,而MySQL Server也支持该语法。MySQL还支持对此语法的扩展,如第9.6节“注释语法”中所述,该扩展使特定于MySQL的SQL能够嵌入到注释中

    标准SQL使用“ --作为开始注释序列。MySQL Server # 用作开始注释字符。MySQL Server还支持--注释样式的变体也就是说,--开始注释序列后必须跟一个空格(或一个控制字符,例如换行符)。需要该空间来防止使用以下结构的自动生成的SQL查询出现问题,在该结构中我们自动为插入付款值payment

     
    UPDATE account SET credit=credit-payment

    考虑一下如果payment值为负,会发生什么情况-1

    UPDATE account SET credit=credit--1

    credit--1是SQL中的有效表达式,但 --被解释为注释的开始,部分表达式被丢弃。结果是一条语句,其含义与预期的完全不同:

    UPDATE account SET credit=credit

    该声明根本不会改变价值。这说明,允许以开头的注释 --会产生严重的后果。

    使用我们的实现时,必须在后面加上一个空格, --以便在MySQL Server中将其识别为开始注释序列。因此, credit--1使用安全。

    另一个安全的功能是mysql 命令行客户端忽略以开头的行 --

     

  • 相关阅读:
    的地方d'fe'w
    日期
    equals方法
    接口作为成员变量类型
    匿名内部类注意事项
    匿名内部类
    局部内部类注意问题
    可以
    C中的volatile关键字
    继承权限问题
  • 原文地址:https://www.cnblogs.com/owlin/p/13729205.html
Copyright © 2011-2022 走看看