mysql 使用after关键字 踩坑反引号

建表语句如下:

CREATE TABLE `user` (
  `userId` int(11) NOT NULL AUTO_INCREMENT,
  `userName` varchar(20) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  `phone` varchar(11) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `sex` bit(1) DEFAULT NULL,
  PRIMARY KEY (`userId`)
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8;

预期是往表中phone后添加一个字段,sql语句如下:

ALTER TABLE USER ADD is_vip TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT '是否是VIP,0-否,1-是' AFTER 'phone';

执行语句,报如下错误:
在这里插入图片描述
那么问题来了,语句看起来没什么毛病,在phone后面添加is_vip字段,百撕不得骑姐。。。
看问题报错信息是语句中的phone出的问题,于是把 AFTER 'phone’去掉,执行成功,但是字段会添加在最后面,那么问题就初出现在AFTER 后面。。。最后发现是因为 ‘phone’ 会解析成字符串,而不是表中的phone字段。
解决方法有两个:
1、最直接的方式,把phone的单引号去掉,直接直接写字段名称。

ALTER TABLE USER ADD is_vip TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT '是否是VIP,0-否,1-是' AFTER phone;

2、把引号改成反引号

ALTER TABLE USER ADD is_vip TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT '是否是VIP,0-否,1-是' AFTER `phone`;

反引号的键盘上输入方式是第二排的第一个,也就是1左边的那个键,切换成英文输入,直接按,不用按住shift

你可能感兴趣的:(Mysql,遇到的错误)