当不在枚举中的值被分配给该字段时,MySQL表中是否有一种方法可以分配默认值?
CREATE TABLE `comments` (
`status` enum('approved','moderated','unmoderated') NOT NULL DEFAULT 'unmoderated'
);如果在创建时没有定义status,但是如果您将它设置为不在枚举中的值或设置为NULL,则它将被“清空”(看起来不是NULL)。如果我把它设置为NULL,我希望它是“无节制的”,因为它不能是null。我不确定这是否有意义。是否需要在插入之前对数据进行清理,以确保值首先存在于枚举中?
UPDATE comments SET status = NULL;
UPDATE comments SET status = 'not_in_there';发布于 2010-07-01 17:43:43
如果您尝试将ENUM字段设置为不在定义列表中的值,则它将作为索引0插入,即空字符串。仅当没有为该列指定值时,默认值才会生效。
我猜要做你需要做的事情,你需要首先检查代码中的无效值,然后在查询中包含你想要的值。
https://stackoverflow.com/questions/3155322
复制相似问题