MySQL在创建表时指定数字输入范围

时间:2014-09-11 02:21:34

标签: mysql

用于限制我使用ENUM的分类输入,而我如何处理数值范围(整数或实数),例如Imp。

的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,
);

由于

1 个答案:

答案 0 :(得分:1)

您正在寻找的是CHECK constraint但不幸的是,mysql不支持它。

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