2016-09-27 25 views
1

我用這alter聲明和NULL值列不轉移爲「男」仍然NULL遷移舊錶結構,新發現的枚舉不工作

alter table users modify gender ENUM('Male', 'Female') NOT NULL default 'Male'; 

爲什麼不工作?我需要以其他方式做到嗎?

+0

您可以嘗試IFNULL()這裏的[文檔]( http://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html) –

+0

對於select語句就足夠了,但我正在尋找不會將單列作爲null的全遷移Daniel 。對我來說這是非常有用的建議,如果我不知道我會去找這個解決方案 – Ramdrupal7

+0

添加一個新列,使用適當的UPDATE語句填充所需值,刪除舊列,重命名新列。 – CBroe

回答

1

默認值僅適用於插入新行的情況。

雖然可以將這些NULL值設置爲默認使用單個更新命令alter命令後,枚舉行爲:

UPDATE users SET gender=default where gender is NULL; 

感謝