我正在寻找语法,以添加一个默认值为0的MySQL数据库列

参考


当前回答

试试这个:

ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;

从您链接到的文档中:

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
   alter_specification [, alter_specification] ...

alter_specification:
    ...
    ADD [COLUMN] (col_name column_definition,...)
    ...

要找到column_definition的语法,请在页面下方搜索:

column_definition子句对ADD和CHANGE使用与CREATE TABLE相同的语法。参见12.1.17节“CREATE TABLE语法”。

在链接页面中:

column_definition:  
   data_type [NOT NULL | NULL] [DEFAULT default_value]
   [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]  
   [COMMENT 'string']  
   [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]  
   [STORAGE {DISK|MEMORY|DEFAULT}]  
   [reference_definition]  

注意这里的DEFAULT这个词。

其他回答

另一个有用的关键字是FIRST和AFTER,如果您想将它添加到表中的特定位置。

ALTER TABLE `table1` ADD COLUMN `foo` AFTER `bar` INT DEFAULT 0;

你可以试试这个,

ALTER TABLE table_name ADD column_name INT DEFAULT 0;

这将适用于ENUM类型作为默认值

ALTER TABLE engagete_st.holidays add column `STATUS` ENUM('A', 'D') default 'A' AFTER `H_TYPE`;

试试这个:

ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;

从您链接到的文档中:

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
   alter_specification [, alter_specification] ...

alter_specification:
    ...
    ADD [COLUMN] (col_name column_definition,...)
    ...

要找到column_definition的语法,请在页面下方搜索:

column_definition子句对ADD和CHANGE使用与CREATE TABLE相同的语法。参见12.1.17节“CREATE TABLE语法”。

在链接页面中:

column_definition:  
   data_type [NOT NULL | NULL] [DEFAULT default_value]
   [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]  
   [COMMENT 'string']  
   [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]  
   [STORAGE {DISK|MEMORY|DEFAULT}]  
   [reference_definition]  

注意这里的DEFAULT这个词。

像这样的吗?

ALTER TABLE `tablename` ADD `new_col_name` INT NOT NULL DEFAULT 0;