gpt4 book ai didi

mysql - 不可为空的 MySQL 枚举列是否保证只包含这些值?

转载 作者:行者123 更新时间:2023-11-29 13:45:33 26 4
gpt4 key购买 nike

如果我的 MySQL 数据库中有一个列:

  • 不可为 null
  • 是一个具有 5 个可能值的 ENUM
  • 这些 ENUM 的默认值为 1

能否保证该列中永远不会有除这些 ENUM 之一之外的值?

最佳答案

默认情况下不是 - 除了枚举值之外,您的列还可以有一个值,即列中的空字符串。

您必须在 MySQL 中启用严格的 SQL 模式才能保证仅出现枚举值(如果列可为空,则为 NULL)。

取自 here

If you insert an invalid value into an ENUM (that is, a string not present in the list of permitted values), the empty string is inserted instead as a special error value. This string can be distinguished from a “normal” empty string by the fact that this string has the numeric value 0. See Section 11.4.4, “ Index Values for Enumeration Literals ” for details about the numeric indexes for the enumeration values.

If strict SQL mode is enabled, attempts to insert invalid ENUM values result in an error.

关于mysql - 不可为空的 MySQL 枚举列是否保证只包含这些值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17470420/

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