关于mysql:添加具有默认值的新SQL列

Adding a new SQL column with a default value

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

参考


试试这个:

1
ALTER TABLE table1 ADD COLUMN foo INT DEFAULT 0;

从链接到的文档中:

1
2
3
4
5
6
7
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name
   alter_specification [, alter_specification] ...

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

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

column_definition clauses use the same syntax for ADD and CHANGE as for CREATE TABLE. See Section 12.1.17,"CREATE TABLE Syntax".

并且从链接页面:

1
2
3
4
5
6
7
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
ALTER TABLE `tablename` ADD `new_col_name` INT NOT NULL DEFAULT 0;


只需在ALTER TABLE

ADD COLUMN 语句的末尾添加default 0


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

1
ALTER TABLE engagete_st.holidays ADD COLUMN `STATUS` ENUM('A', 'D') DEFAULT 'A' AFTER `H_TYPE`;

表用户(user_id int无符号PK,用户名varchar(32))

1
ALTER TABLE users ADD COLUMN verified tinyint UNSIGNED DEFAULT 0

你可以试试看

1
ALTER TABLE TABLE_NAME ADD column_name INT DEFAULT 0;

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


Try This :)

1
ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT NOT NULL DEFAULT 0;

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

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


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