15

我必须在使用 Alter 表的特定列之后将默认值不为空的列添加到表中。

ALTER TABLE tblechecklistrevision ADD COLUMN IWorkFlowOrder INT(10) DEFAULT NOT NULL AFTER fState;

当我执行查询时,我将收到以下错误

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“NOT NULL AFTER fState”附近使用正确的语法

4

2 回答 2

16

你应该删除DEFAULT

ALTER TABLE tblechecklistrevision 
    ADD COLUMN IWorkFlowOrder INT(10) NOT NULL AFTER fState;

DEFAULT 用于将初始值设置为未指定该列的值的新行,当您编写时...INT(10) NOT NULL,您的意思实际上是该列永远不能包含 NULL,不仅在初始化时。

于 2012-06-09T11:17:11.913 回答
12

如果您希望默认值不等于NULL(例如 0),您可以执行以下操作:

ALTER TABLE tblechecklistrevision 
    ADD COLUMN IWorkFlowOrder INT(10) NOT NULL DEFAULT 0 AFTER fState
于 2012-06-09T11:16:38.970 回答