添加默认值不为null的列.

Man*_*yak 13 mysql

我必须在使用Alter表的特定列之后添加一个默认值不为null的列.

ALTER TABLE tblechecklistrevision ADD COLUMN IWorkFlowOrder INT(10) DEFAULT NOT NULL AFTER fState;
Run Code Online (Sandbox Code Playgroud)

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

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

Nad*_*oli 15

你应该删除DEFAULT:

ALTER TABLE tblechecklistrevision 
    ADD COLUMN IWorkFlowOrder INT(10) NOT NULL AFTER fState;
Run Code Online (Sandbox Code Playgroud)

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


StP*_*ere 10

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

ALTER TABLE tblechecklistrevision 
    ADD COLUMN IWorkFlowOrder INT(10) NOT NULL DEFAULT 0 AFTER fState
Run Code Online (Sandbox Code Playgroud)