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

博主近段时间在做一个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一样,原因当然是他们本质上都是数据库的关键字了,这里,由于时间关系博主就不一一举例了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值