【 TiDB 使用环境】测试
【 TiDB 版本】v7.5.1
【复现路径】做过哪些操作出现的问题
mysql> alter table test322 add column d varchar(10),e varchar(10);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your TiDB version for the right syntax to use line 1 column 46 near “e varchar(10)”
mysql> alter table test322 add column d varchar(10) e varchar(10);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your TiDB version for the right syntax to use line 1 column 46 near “e varchar(10)”
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
alter table test322 add column (d varchar(10),e varchar(10)); 试试
参考了一下mysql里面,下面这个语法是可以执行的。
alter table test322 add column d varchar(10),add column e varchar(10);
嗯 ,试了一下,你这个语法也可以的。
alter table test322 add column (f varchar(10),g varchar(10));
还有一种
alter table test322 add column d varchar(10),add column e varchar(10);
嗯,好的,多谢。
学到了
和mysql语法类似
绝大部分兼容
支持的这个功能
有哪个库不支持的么。。。
7.5.1 这个版本支持一条语句里添加多列,5版本的不行
平时图省时,都是用Navicat在界面上增加并控制新增字段位置
你这个是语法错误,mysql也没这种用法吧,新版本tidb是支持一条语句加多个字段的,用通用语法alter table … add xxx,add xxx这种肯定可以的
支持啊
Navicat里面同时增加2个字段会报错。感觉是工具和数据库适配有点问题。
tidb的官方文档应该把增加多列的语法也说明一下就好了。
https://docs.pingcap.com/zh/tidb/stable/sql-statement-add-column
文档的语法图中描述的很清楚,AddColumnSpec可以循环,以逗号分隔。
Navicat里面同时增加2个字段会报错,主要是加了after , 多个after 依赖了还未出入的列,自动生成的sql改下就能执行了
mysql的语法 差不多支持