【问题标题】:Adding multiple columns in MySQL with one statement用一条语句在 MySQL 中添加多列
【发布时间】:2015-01-27 13:04:51
【问题描述】:

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

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

我在写:

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

我在 StackOverflow 上参考过过去的帖子,并且我正在遵循专家的建议,为什么会出现错误?

【问题讨论】:

标签: mysql sql database


【解决方案1】:
 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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        这将对您有所帮助:

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

        【讨论】:

          【解决方案5】:

          当您向现有表添加列时,我认为您不应该在语句中声明 NOT NULL。另外,您不需要使用ADD COLUMN,只需使用ADD即可。

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

          【讨论】:

            【解决方案6】:

            这是来自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 可能重复

            【讨论】:

              【解决方案7】:

              alter table table_name add (product varchar(20) not null, price int(10))

              这也很好用

              【讨论】:

                猜你喜欢
                • 2015-05-30
                • 2012-01-05
                • 2020-12-24
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-05-20
                相关资源
                最近更新 更多