在MySQL中使用一个语句添加多个列

28

我正在尝试在phpMyAdmin中向现有表格添加多列,但是我一直遇到相同的错误:

#1064 - 您的SQL语法有误;请参考与您的MySQL服务器版本对应的手册以获取正确的语法...

我写的是:

ALTER TABLE `WeatherCenter`
   ADD COLUMN
      BarometricPressure SMALLINT NOT NULL,
      CloudType VARCHAR(70) NOT NULL,
      WhenLikelyToRain VARCHAR(30) NOT NULL;

我查看了StackOverflow上的之前的帖子,并遵循专家的建议,为什么我还是出现了错误?


可能是alter table add MULTIPLE columns AFTER column1的重复问题。 - zuluk
7个回答

59
 ALTER TABLE table_name
 ADD COLUMN column_name datatype

正确的语法

ALTER TABLE `WeatherCenter`
   ADD COLUMN BarometricPressure SMALLINT NOT NULL,
   ADD COLUMN CloudType VARCHAR(70) NOT NULL,
   ADD COLUMN  WhenLikelyToRain VARCHAR(30) NOT NULL;

检查语法


13

您需要指定多个 ADD COLUMN

ALTER TABLE `WeatherCenter`
      ADD COLUMN  BarometricPressure SMALLINT NOT NULL,
      ADD COLUMN CloudType VARCHAR(70) NOT NULL,
      ADD COLUMN WhenLikelyToRain VARCHAR(30) NOT NULL;

6
您可以通过以下方式在一条语句中更改表并添加多列。
alter table WeatherCenter add column (BarometricPressure SMALLINT NOT NULL, CloudType VARCHAR(70) NOT NULL, WhenLikelyToRain VARCHAR(30) NOT NULL);

1
这将帮助您:

alter table A add first_name varchar(10),last_name varchar(10);

0

由于您正在向现有表添加列,我认为在语句中不需要声明 NOT NULL。此外,您不需要使用 ADD COLUMN,只需使用 ADD

ALTER TABLE WeatherCentre
   ADD BarometricPressure SMALLINT,
   ADD CloudType VARCHAR(70),
   ADD WhenLikelyToRain VARCHAR(30);

0

这是来自官方MySQL文档

ALTER TABLE tbl_name
    [alter_specification [, alter_specification] ...]
    [partition_options]

alter_specification:
    table_options
  | ADD [COLUMN] col_name column_definition
        [FIRST | AFTER col_name]
  | ADD [COLUMN] (col_name column_definition,...)

可能是在column1之后添加多个列的alter table语句的重复问题。


0

修改表 table_name,添加 (product varchar(20) not null, price int(10))

这也可以正常工作


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接