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

时间:2014-11-28 21:15:05

标签: mysql sql database

我正在尝试将多个列添加到phpMyAdmin中的现有表中,但我一直收到同样的错误:

  

#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法...

我在写:

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

我已经参考了StackOverflow上的过去帖子,我正在听取专家的建议,为什么我会收到错误?

7 个答案:

答案 0 :(得分:31)

 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;

检查syntax

答案 1 :(得分:8)

您需要指定多个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;

答案 2 :(得分:2)

您可以通过这样做来更改表并在一个语句中添加多个列。

alter table WeatherCenter add column (BarometricPressure SMALLINT NOT NULL, CloudType VARCHAR(70) NOT NULL, WhenLikelyToRain VARCHAR(30) NOT NULL);

答案 3 :(得分:1)

这将帮助您:

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

答案 4 :(得分:0)

当您在现有表格中添加列时,我并不认为您要在声明中声明NOT NULL。此外,您不需要使用 ADD COLUMN ,您只需使用 ADD

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

答案 5 :(得分:0)

这是Official MySQL Documentation

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,...)

alter table add MULTIPLE columns AFTER column1

可能重复

答案 6 :(得分:0)

更改表table_name添加(产品varchar(20)不为null,价格为int(10))

这也很好