如果我在MySQL数据库中有一列:
可以保证除了其中一个ENUM之外,该列中永远不会有值吗?
答案 0 :(得分:1)
默认情况下 - 除了枚举值(列中的空字符串)之外,列还可以有一个值。
你必须在MySQL中启用严格的SQL模式,以保证只发生枚举值(如果列可以为空,则为NULL)。
取自here
如果在ENUM中插入无效值(即不是字符串 如果出现在允许值列表中,则插入空字符串 而是作为特殊的错误值。可以区分此字符串 来自“正常”的空字符串,因为该字符串具有 数值0.请参见第11.4.4节“枚举的索引值” 文字“有关枚举的数字索引的详细信息 值。
如果启用了严格的SQL模式,则尝试插入无效的ENUM值 导致错误。
答案 1 :(得分:0)
如果启用了严格的SQL模式,则尝试插入无效的ENUM值会导致错误。