9.6. MySQL中保留字的处理

Posted Fight With Me!!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9.6. MySQL中保留字的处理相关的知识,希望对你有一定的参考价值。

尝试使用一个识别符,例如使用嵌入式mysql 数据类型或函数名作为表名或列名,例如TIMESTAMP 或GROUP ,会造成一个常见问题。允许你这样操作( 例如,ABS 可以作为一个列名) 。但是,默认情况下,在数调用中在函数名和后面的‘( ’字符之间不允许有空格。该要求使函数调用与列名引用不同。

该行为的不利结果是在某些上下文中省略一个空格会使识别符解释为函数名。例如,该语句合法:

mysql>CREATE TABLE abs (val INT)
;

但省略abs 后面的空格会造成语法错误,因为省略后该语句好像要调用ABS() 函数:

mysql>CREATE TABLE abs(val INT);

如果SQL 服务器模式包括IGNORE_SPACE 模式值,服务器允许函数调用时在函数名和后面的‘( ’字符之间有空格。这样使函数名被视为保留字。结果是,与函数名相同的识别符必须按照9.2节,“数据库、表、索引、列和别名”中所描述的引起来。SQL 服务器模式按照5.3.2节,“SQL服务器模式”中所描述的进行控制。

限定名中句点后面的字必须为一个识别符,因此不需要将它引起来,即使它是一个保留字。

在MySQL 中,下表中的字显式被保留。其中大多数字进制被标准SQL 用作列名和/ 或表名( 例如,GROUP ) 。少数被保留了,因为MySQL 需要它们,( 目前) 使用yacc解析程序。保留字被引起来后可以用作识别符。

 

MySQL 允许部分关键字用做未引起来的识别符,因为许多人以前曾使用过它们。下面列出了一些例子:

 

  •  

  •  

    ACTION

     

  •  

    BIT

     

  •  

    DATE

     

  •  

    ENUM

     

  •  

    NO

     

  •  

    TEXT

     

  •  

    TIME

     

  •  

    TIMESTAMP

以上是关于9.6. MySQL中保留字的处理的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JPA 中映射名称为保留字的实体字段

java BottomBarNavigation代码保留片段状态

使用带有 Scala 保留字的 Java 库

Java关键字和保留字的说明

千金良方说:"我现在奉上179341字的MySQL资料包,还来得及吗?有"代码段附录和高清图!!"

Realm保留一个已删除的对象