我试图修改MySQL表以将列添加到现有列的末尾。但出于某些原因,MySQL不喜欢我正在运行的查询。
下面是我的问题。
alter table hdds add
hdd1 VARCHAR(100),
hdd2 VARCHAR(100),
hdd3 VARCHAR(100),
hdd4 VARCHAR(100),
hdd5 VARCHAR(50),
hdd6 VARCHAR(100),
hdd6 VARCHAR(100),
hdd7 VARCHAR(100),
hdd8 VARCHAR(100),
hdd9 VARCHAR(100),
hdd10 VARCHAR(100),
hdd11 VARCHAR(100),
hdd12 VARCHAR(100),
hdd13 VARCHAR(100),
hdd14 VARCHAR(100),
hdd15 VARCHAR(100),
hdd16 VARCHAR(100),
hdd17 VARCHAR(100),
hdd18 VARCHAR(100),
hdd19 VARCHAR(100),
after comments;我收到以下错误消息。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'hdd2 VARCHAR(100),
hdd3 VARCHAR(100),
hdd4 VARCHAR(100),
hdd5 ' at line 3 不知道我哪里出了问题。
发布于 2015-09-09 21:24:08
就像一种魅力:
create table t111
( id int auto_increment primary key,
comments varchar(1000) not null
);
alter table t111
add column hdd19 VARCHAR(100) after comments,
add column hdd18 VARCHAR(100) after comments,
add column hdd17 VARCHAR(100) after comments,
add column hdd16 VARCHAR(100) after comments,
add column hdd15 VARCHAR(50) after comments,
add column hdd14 VARCHAR(100) after comments,
add column hdd13 VARCHAR(100) after comments,
add column hdd12 VARCHAR(100) after comments,
add column hdd11 VARCHAR(100) after comments,
add column hdd10 VARCHAR(100) after comments,
add column hdd9 VARCHAR(100) after comments,
add column hdd8 VARCHAR(100) after comments,
add column hdd7 VARCHAR(100) after comments,
add column hdd6 VARCHAR(100) after comments,
add column hdd5 VARCHAR(100) after comments,
add column hdd4 VARCHAR(100) after comments,
add column hdd3 VARCHAR(100) after comments,
add column hdd2 VARCHAR(100) after comments,
add column hdd1 VARCHAR(100) after comments;
describe t111;另外,您还有一个错误,尝试添加两次hdd6。
编辑:
我将列的顺序从19转到1,所以它们都是在comments将它们冒泡后排列起来的(如describe t111;中所示)。
在我看来,您有两个选择,可以在comments之后从1到19直观地排列顺序。
1.你可以像我那样做,首先是19条评论,然后是18条评论(下面推19条),然后17条评论推低18条和19条.在评论之后推2到19条。
或
2.您可以执行1到19的操作,并且必须在“注释部分”中单独修改after comments块,其内容如下:创建表t111 ( id int auto_increment主键,注释varchar(1000) null );
alter table t11
add column hdd1 VARCHAR(100) after comments,
add column hdd2 VARCHAR(100) after hdd1,
add column hdd3 VARCHAR(100) after hdd2,
...
add column hdd19 VARCHAR(100) after hdd18;我选择了1.,也许不是最好和最快的选择,但它满足了我对泡泡式好奇心的渴望。
所有这一切都取决于任何关心他们长相的人,但在你的情况下,这可能是应该的,因为你有这么多而且容易出错。
发布于 2015-09-09 21:15:47
不,不能在单个ALTER语句中添加这样的多个列。这是错误的,因为它与CREATE语句不一样,因此您收到的错误。您必须将其单独的ALTER语句设置为
alter table hdds add hdd1 VARCHAR(100) after comments;
alter table hdds add hdd2 VARCHAR(100) after comments;https://stackoverflow.com/questions/32489257
复制相似问题