【问题标题】:MySQL specify numeric input range when create tableMySQL在创建表时指定数字输入范围
【发布时间】:2014-09-11 02:21:33
【问题描述】:

为了限制我使用ENUM 的分类输入,而我如何处理数字范围(整数或实数),例如356-956 用于展示。

/**********************************************************************/
/*Create database and table with constraint*/

CREATE DATABASE Hactl;
CREATE TABLE  Hactl.table1(
    Type CHAR(1) ENUM('M','C') NOT NULL,
    Region VARCHAR(50) NOT NULL,
    Country VARCHAR(50) NOT NULL,
    City VARCHAR(3) NOT NULL,
    Imp DECIMAL(10,2) NOT NULL,
    Exp DECIMAL(10,2) NOT NULL,
    TS DECIMAL(10,2) NOT NULL,
    Year INT(4) NOT NULL,
    Month CHAR(3) ENUM('Jan', 'Feb', 'Mar',
               'Apr', 'May', 'Jun',
               'Jul', 'Aug', 'Sep',
               'Oct', 'Nov', 'Dec') NOT NULL,
);

谢谢

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您要查找的是CHECK constraint,但不幸的是 mysql 不支持它。

    所以你没有任何特别优雅的选项,但你可以在插入/更新之前使用triggers, 或者您可以创建一个包含允许值的表格,然后使用foreign key constraint

    【讨论】:

    猜你喜欢
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    相关资源
    最近更新 更多