2016-09-27 27 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; 

感谢