【发布时间】:2010-08-25 19:06:54
【问题描述】:
我正在寻找将列添加到默认值为 0 的 MySQL 数据库的语法
【问题讨论】:
我正在寻找将列添加到默认值为 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 相同的语法。见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]
请注意此处的“默认”一词。
【讨论】:
TINYINT(1) 的同义词,这比使用 INT 更有效,使用此“正确”答案时请记住这一点
NOT NULL。除非指定,否则具有默认值的列仍然可以为 NULL,这通常(但不总是)违背了默认值的目的。
像这样?
ALTER TABLE `tablename` ADD `new_col_name` INT NOT NULL DEFAULT 0;
【讨论】:
tablenameADD new_col_nameINT NOT NULL DEFAULT '1';
表用户(user_id int unsigned PK,用户名 varchar(32))
alter table users add column verified tinyint unsigned default 0
【讨论】:
如果您正在学习使用SQLyog 之类的 GUI 会有所帮助,请使用该程序进行更改,然后查看进行这些更改的 DDL 语句的“历史记录”选项卡。
【讨论】:
试试这个:)
ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT NOT NULL DEFAULT 0;
【讨论】:
这将适用于 ENUM 类型作为默认值
ALTER TABLE engagete_st.holidays add column `STATUS` ENUM('A', 'D') default 'A' AFTER `H_TYPE`;
【讨论】:
只需在 ALTER TABLE <table> ADD COLUMN <column> <type> 语句的末尾添加 default 0
【讨论】:
你可以试试这个,
ALTER TABLE table_name ADD column_name INT DEFAULT 0;
【讨论】:
ALTER TABLE my_table ADD COLUMN new_field TinyInt(1) DEFAULT 0;
【讨论】:
另一个有用的关键字是 FIRST 和 AFTER,如果您想将其添加到表格中的特定位置。
ALTER TABLE `table1` ADD COLUMN `foo` AFTER `bar` INT DEFAULT 0;
【讨论】:
bar 应该是 *after INT