首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当分配的值不在枚举中时,枚举的默认值

问当分配的值不在枚举中时,枚举的默认值
EN

Stack Overflow用户
提问于 2010-07-01 13:36:45
回答 1查看 3.1K关注 0票数 0

当不在枚举中的值被分配给该字段时,MySQL表中是否有一种方法可以分配默认值?

代码语言:javascript
复制
CREATE TABLE `comments` (
  `status` enum('approved','moderated','unmoderated') NOT NULL DEFAULT 'unmoderated'
);

如果在创建时没有定义status,但是如果您将它设置为不在枚举中的值或设置为NULL,则它将被“清空”(看起来不是NULL)。如果我把它设置为NULL,我希望它是“无节制的”,因为它不能是null。我不确定这是否有意义。是否需要在插入之前对数据进行清理,以确保值首先存在于枚举中?

代码语言:javascript
复制
UPDATE comments SET status = NULL;
UPDATE comments SET status = 'not_in_there';
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-01 17:43:43

如果您尝试将ENUM字段设置为不在定义列表中的值,则它将作为索引0插入,即空字符串。仅当没有为该列指定值时,默认值才会生效。

我猜要做你需要做的事情,你需要首先检查代码中的无效值,然后在查询中包含你想要的值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3155322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档