TiDB支持在一个alter table add column增加多个字段么

【 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)); 试试

2 个赞

参考了一下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);

2 个赞

嗯,好的,多谢。

学到了

和mysql语法类似

绝大部分兼容
image

支持的这个功能

有哪个库不支持的么。。。

7.5.1 这个版本支持一条语句里添加多列,5版本的不行

平时图省时,都是用Navicat在界面上增加并控制新增字段位置

你这个是语法错误,mysql也没这种用法吧,新版本tidb是支持一条语句加多个字段的,用通用语法alter table … add xxx,add xxx这种肯定可以的

1 个赞

支持啊

Navicat里面同时增加2个字段会报错。感觉是工具和数据库适配有点问题。

tidb的官方文档应该把增加多列的语法也说明一下就好了。

https://docs.pingcap.com/zh/tidb/stable/sql-statement-add-column
文档的语法图中描述的很清楚,AddColumnSpec可以循环,以逗号分隔。

1 个赞

Navicat里面同时增加2个字段会报错,主要是加了after , 多个after 依赖了还未出入的列,自动生成的sql改下就能执行了

1 个赞

mysql的语法 差不多支持