gpt4 book ai didi

mysql - 当分配的值不在枚举中时,枚举的默认值

转载 作者:行者123 更新时间:2023-11-29 09:18:30 26 4
gpt4 key购买 nike

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

CREATE TABLE `comments` (
`status` enum('approved','moderated','unmoderated') NOT NULL DEFAULT 'unmoderated'
);

如果在创建时未定义status,则可以工作,但如果将其设置为不在枚举中或 NULL 中,则它会被“空白”(似乎不是 NULL)。如果我将其设置为 NULL,我希望它是“unmoderated”的,因为它不能为 null。不确定这是否有意义。我是否需要在插入之前清理数据以确保该值首先存在于枚举中?

UPDATE comments SET status = NULL;
UPDATE comments SET status = 'not_in_there';

最佳答案

如果您尝试将 ENUM 字段设置为不在定义列表中的值,那么它将作为索引 0(一个空字符串)插入。仅当没有为该列指定值时,默认值才会起作用。

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

关于mysql - 当分配的值不在枚举中时,枚举的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3155322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com