MySQL如何为已创建表添加列名为name,surname的列?
MySQL添加列的正确操作方式
嘿,你尝试的这条语句alter table MyTable ADD name,surname Varchar(100)是不正确的哦!MySQL里一次性添加多个列的时候,每个列都需要单独声明它的数据类型(以及其他可选属性),不能把多个列名放在一起只写一次类型。
下面给你两种场景的正确写法:
1. 单独添加单个列
如果只需要添加name列,可以这么写:
ALTER TABLE MyTable ADD name VARCHAR(100);
要是想指定列的位置(比如加到某个已有列的后面),可以加上AFTER关键字:
ALTER TABLE MyTable ADD name VARCHAR(100) AFTER existing_column;
这里的existing_column换成你表中实际存在的列名就行。
2. 一次性添加多个列(name和surname)
这是你需要的场景,正确写法是给每个列单独定义类型,用逗号分隔每个ADD语句:
ALTER TABLE MyTable ADD name VARCHAR(100), ADD surname VARCHAR(100);
同样也可以给每个列指定位置,比如让surname紧跟在name后面:
ALTER TABLE MyTable ADD name VARCHAR(100) AFTER some_column, ADD surname VARCHAR(100) AFTER name;
简单来说,你的错误在于把两个列名合并后只写了一次数据类型,MySQL会把surname误认为是name列的属性,而非独立列名,所以执行时会报错。
内容的提问来源于stack exchange,提问作者Rezo Kobaidze
相关产品推荐
相关产品推荐

