2012-06-09 153 views
9

我必須添加一個默認值不是默認值的列到使用Alter表的特定列之後的表中。添加默認值不爲空的列。

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

當我執行查詢我會得到下面的錯誤

您的SQL語法錯誤;檢查手冊中 對應於你的MySQL服務器版本正確的語法使用 附近「NOT NULL AFTER fState」如果你想要的默認值在1號線

回答

10

您應該刪除DEFAULT

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

默認值是初始值設定爲新行,其中沒有指定該列的值,當您編寫...INT(10) NOT NULL時,實際上該列不能包含NULL,而不僅僅是在初始化時。

9

不等於NULL(例如0),你可以更多信息:

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