MySQL中的表名和数据库关键字相同解决办法

原创 2016年05月31日 21:55:19

博主近段时间在做一个javaweb的小项目,需要数据库,但是今晚在创建一个表名为’order’的时候,‘很莫名其妙’地在报错,楼主以为是太久没使用命令行来创建,仔细检查自己的语句,找了半天也找不出个所以然。后来突然,想到mysql有个’order by’排序功能。博主在想是不是和java等编程语言一样,用户自定义的不能和关键字一样呢?于是博主开始测试,果不其然!下面分享解决办法!

首先楼主想要创建一个表:

Create table order(
id smallint unsigned primary key auto_increment,
cinameID smallint,
hallID smallint,
mivieID smallint,
prices int,
seat int);

‘莫名其妙’的报错了:这里写图片描述

意识到不是莫名奇妙的错误之后,楼主改了一个表名:

Create table rder(
id smallint unsigned primary key auto_increment,
cinameID smallint,
hallID smallint,
mivieID smallint,
prices int,
seat int);

结果马上成功了:这里写图片描述

这就说明是我的错因在表名了嘛!

解决办法之一:
当然是换一个表名了(非关键字);

解决办法二:
问:那我要是非要用那个表名,是不是没辙了?
答:答案肯定是否定的啊,

这样修改一下就好了

Create table `order`(
id smallint unsigned primary key auto_increment,
cinameID smallint,
hallID smallint,
mivieID smallint,
prices int,
seat int);

这里写图片描述

最为重要的一点来了:你有没有注意这次我的表名嵌在了一对类似单引号的符号了,但是事实上那不是单引号,而是英文输入法下的“Tag”按键正上方的那颗按键
如图:
这里写图片描述

这样创建的表,要是要对其操作也要做相同的“,否则就会报错了!!!!

事实说话:
假设我要查看我的表的域

正常情况下应该是这样的:

show columns from order;

这里写图片描述

看报错了吧!!!

应该这样

show columns from `order`;

这里写图片描述

所以

最好表名什么的,最好不要用关键字,以免带来不必要的麻烦!!!!

备注:博主测试了一下其他关键字,和order一样,原因当然是他们本质上都是数据库的关键字了,这里,由于时间关系博主就不一一举例了!

版权声明:本文为博主原创文章,未经博主允许不得转载。

mysql中的表名如果跟mysql的关键字冲突怎么处理?

今天使用mysql进行查询时,遇到一个问题,如标题: mysql中的表名如果跟mysql的关键字冲突怎么处理? 需要给关键字加上撇,也就是键盘上数字1左边的那个撇 例如,Order,User...
  • baidu_18143823
  • baidu_18143823
  • 2016年07月04日 13:34
  • 2485

Mysql关键字

mysql关键字 在今儿hibernate执行save方法的时候显示sql语法错误 You have an error in your SQL syntax; check th...
  • qc_qichang
  • qc_qichang
  • 2017年03月28日 09:39
  • 659

MySQL关键字

ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY ...
  • ljfwl
  • ljfwl
  • 2014年09月18日 17:36
  • 1910

mysql数据库关键字

  • 2015年09月10日 10:58
  • 87KB
  • 下载

order是mysql的关键字,不能用order作为表名

忘记order是mysql的关键字了,我用order做为表名,死活插不进去数据
  • a694704123b
  • a694704123b
  • 2015年12月22日 10:06
  • 1928

MySQL中的describe关键字

今天写代码的时候,有一个类的数据始终不能插入,老是提示在You have an error in your SQL syntax; check the manual that corresponds ...
  • chenjunan888
  • chenjunan888
  • 2012年04月12日 19:31
  • 7138

MySQL中的表名和数据库关键字相同解决办法

博主近段时间在做一个javaweb的小项目,需要数据库,但是今晚在创建一个表名为’order’的时候,‘很莫名其妙’地在报错,楼主以为是太久没使用命令行来创建,仔细检查自己的语句,找了半天也找不出个所...
  • Gpwner
  • Gpwner
  • 2016年05月31日 21:55
  • 4352

mysql中表名为关键字的处理方法

这是一条简单sql语句,向order表里插入数据。看到哪里错了吗? INSERT INTO order VALUES ('1471', 'go-1471-1-3340'); 执行的时候会报错...
  • wuli2496
  • wuli2496
  • 2015年07月21日 15:29
  • 1101

SQL——SQL语言全部关键字详解

数据库中我们做常用的就是SQL基本查询语言,甚至有些人认为数据库就是SQL,SQL就是数据库。虽然这种观点是错误的,但是也确实从一个方面体现了这种面向结果的查询语言的重要性。...
  • QuinnNorris
  • QuinnNorris
  • 2017年05月01日 21:05
  • 7741

命名不能用的数据库关键字

数据库关键字,其中加粗的是要特别注意的,比较常用
  • mingfengshan
  • mingfengshan
  • 2016年04月01日 09:12
  • 589
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL中的表名和数据库关键字相同解决办法
举报原因:
原因补充:

(最多只允许输入30个字)