• 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 命令行客户端忽略以开头的行 --

     

  • 相关阅读:
    grunt in webstorm
    10+ Best Responsive HTML5 AngularJS Templates
    响应式布局
    responsive grid
    responsive layout
    js event bubble and capturing
    Understanding Service Types
    To add private variable to this Javascript literal object
    Centering HTML elements larger than their parents
    java5 新特性
  • 原文地址:https://www.cnblogs.com/owlin/p/13729205.html
Copyright © 2020-2023  润新知