【问题标题】:How to limit Value Range in tinyint(1) field?如何限制 tinyint(1) 字段中的值范围?
【发布时间】:2014-11-27 05:43:37
【问题描述】:

我有一张表 TBLPRODUCTS。

表格包含一个字段listed tinyint(1) not null default 0

该字段可以取 0-9 之间的值。 mysql有没有办法在这个字段中只允许两个值:1或0

【问题讨论】:

  • 这里提供了一种可能的解决方案:stackoverflow.com/a/9249893
  • @AzizShaikh:我赞成将其作为答案。似乎比模拟非功能性 CHECK 约束的触发器更好。
  • 实际上,TINYINT(1) 可以取 255 个可能的值,范围从 -128 到 127。您可以使用触发器(BEFORE INSERT 和 BEFORE UPDATE)或外键约束。使用外键约束,您可以在值不在范围内时引发异常。使用触发器,您可以在如何处理值方面拥有更多选择。
  • 输入从何而来?这就是我设置约束的地方。

标签: mysql


【解决方案1】:

您可以将现有列转换为 BIT(1),例如 sql

ALTER IGNORE TABLE Persons MODIFY P_Id BIT(1) DEFAULT 0

注意:所有现有值 >=1 将被转换为 1;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2012-03-23
    • 1970-01-01
    • 2020-04-13
    相关资源
    最近更新 更多