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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值