添加具有默认值的新SQL列

时间:2010-08-25 19:06:55

标签: sql mysql

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

Reference

10 个答案:

答案 0 :(得分:348)

试试这个:

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相同的语法。见Section 12.1.17, “CREATE TABLE Syntax”.

从链接页面:

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一词。

答案 1 :(得分:33)

喜欢这个吗?

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

答案 2 :(得分:4)

只需在default 0声明

的末尾添加ALTER TABLE <table> ADD COLUMN <column> <type>即可

答案 3 :(得分:2)

表用户(user_id int unsigned PK,username varchar(32))

alter table users add column verified tinyint unsigned default 0

答案 4 :(得分:2)

你可以试试这个,

ALTER TABLE table_name ADD column_name INT DEFAULT 0;

答案 5 :(得分:1)

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

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

答案 6 :(得分:0)

如果您正在学习使用像SQLyog这样的GUI很有帮助,请使用该程序进行更改,然后查看进行这些更改的DDL语句的“历史记录”选项卡。

答案 7 :(得分:0)

  

试试这个:)

ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT NOT NULL DEFAULT 0;

答案 8 :(得分:0)

ALTER TABLE my_table ADD COLUMN new_field TinyInt(1) DEFAULT 0;

答案 9 :(得分:0)

如果要将其添加到表格中的特定位置,则另一个有用的关键字是FIRST和AFTER。

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