MySQL保留字冲突 关键词:保留字, 关键字
在Mysql中,当表名或字段名乃至数据库名和保留字冲突时,在sql语句里可以用撇号`(Tab键上方的按键)括起来。
注意,只有保留字需要``括起来,非保留字的关键字不需要。
MySQL 8.0 官方文档:https://dev.mysql.com/doc/refman/8.0/en/keywords.html
Keywords are words that have significance in SQL. Certain keywords, such as
SELECT,DELETE, orBIGINT, are reserved and require special treatment for use as identifiers such as table and column names. This may also be true for the names of built-in functions.Nonreserved keywords are permitted as identifiers without quoting. Reserved words are permitted as identifiers if you quote them as described in Section 9.2, “Schema Object Names”:
关键词是SQL中有特定意义的词。一些关键词,例如select, delete, bigint,属于保留字,在用作例如表名和列名的时候需要特殊对待。对于内置函数的名称也是如此。
非保留字在用作标识符的时候不需要使用``包含起来。
mysql> CREATE TABLE interval (begin INT, end INT);
ERROR 1064 (42000): You have an error in your SQL syntax ...
near 'interval (begin INT, end INT)'
BEGINandENDare keywords but not reserved, so their use as identifiers does not require quoting.INTERVALis a reserved keyword and must be quoted to be used as an identifier:begin和end都是关键词但不是保留字,所以使用它们用作标识符的时候不需要``引用。而interval属于保留关键词,所以在用作标识符的时候必须使用``引用:
mysql> CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
Exception: A word that follows a period in a qualified name must be an identifier, so it need not be quoted even if it is reserved:
例外:限定名中跟在句点后面的单词一定是标识符,因此即使它是保留字,也不需要``引用:
mysql> CREATE TABLE mydb.interval (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
MySQL保留字冲突 关键词:保留字, 关键字的更多相关文章
- mysql中避免使用保留字和关键字做列的名字
设计数据表时,应尽量避免使用MySQL的关键字和保留字作为表名或列名. 比如key和keys为保留字,如果不小心使用关键字或者保留字作为列名字,执行下面的语句会出现语法错误: select * fro ...
- Mysql字段名与保留字冲突导致的异常解决
一:引言 用hibernate建表时经常遇到的一个异常:Error executing DDL via JDBC Statement 方法: 查看报错sql语句.问题就在这里. 我是表名(字段名)与保 ...
- 关于mysql字段名和保留字冲突的问题
建了个表,有个字段起名为key,结果insert语句报错了,说是sql不对. 原因:字段key和MySQL的保留字冲突了,当mysql的字段名和保留字冲突的时候,sql语句中的字段名需要加上反引号`` ...
- MySQL字段名与保留字冲突的问题及解决方法
问题:MySQL字段名与保留字冲突在实际操作是常常出现的.一把会出现下面错误. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException. 解 ...
- MySQL表名和数据库关键字相同解决办法
今天改他们的代码的时候,遇到了MySQL表名和数据库关键字的问题. 由于表名是关键字,导致增删改查都报错. Hibernate: select leave0_.id as id22_, leave0_ ...
- mysql字段冲突报错
check the manual that corresponds to your MySQL server version for the right syntax to use near 出现这个 ...
- mysql 去除重复 Select中DISTINCT关键字的用法 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记 ...
- SQL语句表名或者字段名和保留字冲突解决方法
最近开发遇到一个很奇葩的问题,简单做一下笔记 select * from Add ... 以上SQL语句会报错. 原因Add是表名,SQL语句保留字中又有Add 解决方法: select * from ...
- PHP MySQL Order By 关键词
ORDER BY 关键词用于对记录集中的数据进行排序. ORDER BY 关键词 ORDER BY 关键词用于对记录集中的数据进行排序. ORDER BY 关键词默认对记录进行升序排序. 如果你想降序 ...
随机推荐
- 下拉菜单--JavaScript触发方法
1. $(function(){ $(".dropdown-toggle").one("click",function(){ $(this).dropdown( ...
- 使用jQuery 取文本
<html> <head> <meta charset="UTF-8"> <title>b</title> <sc ...
- route -A inet6查看路由 getnameinfo failed [UNKNOWN]解决方案
route -A inet6查看路由 getnameinfo failed [UNKNOWN]解决方案, 结果如下: route -A inet6 -n 查看即可
- spark介绍3
- linux查看日志文件内容命令tail、cat、tac、head、echo详解
linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------- ...
- VC6.0 如何显示代码行号
VC6.0是一款比较经典.稳定的功能强大的IDE,目前也有很多人在使用.但美中不足的是它不能像其他IDE那样显示行号.这里需要用到一个插件VC6LineNumberAddin, 下载地址:http:/ ...
- delphi Form显示先后问题
- 20145233《网络对抗》Exp6 信息收集和漏洞扫描
20145233<网络对抗>Exp6 信息收集和漏洞扫描 实验问题思考 哪些组织负责DNS,IP的管理 全球根服务器均由美国政府授权的ICANN统一管理,负责DNS和IP地址管理.全球一共 ...
- CentOS下Docker与.netcore(二) 之 Dockerfile
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客 ...
- Django Manage File
default_storage >>> from django.core.files.base import ContentFile >>> from django ...