关闭

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

2762人阅读 评论(0) 收藏 举报
分类:

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:100261次
    • 积分:2465
    • 等级:
    • 排名:第15020名
    • 原创:151篇
    • 转载:6篇
    • 译文:0篇
    • 评论:18条
    最新评论