限制整数数据类型字段长度

时间:2012-05-08 06:34:30

标签: mysql sql database database-design

我试图限制整数字段可以包含的数字的数量。例如,我希望该字段包含不超过5个长的数字,因此99999将是最高有效条目。

这可以在MySQL中做到吗?我查看了文档,但没有找到答案。

3 个答案:

答案 0 :(得分:3)

不幸的是,CHECK约束和用户定义的类型都没有在MySQL中实现。也许这将在未来的版本中发生变化。

在此之前,您可以使用触发器来纠正输入,如果这是一种方法:

delimiter //
CREATE TRIGGER trigger_check BEFORE INSERT ON your_table
FOR EACH ROW 
BEGIN 
    IF NEW.NUM > 99999 THEN 
        SET NEW.NUM = 0; 
    END IF; 
END
//

答案 1 :(得分:1)

每当对数据库进行更改时,您都可以添加触发器来强制执行此操作。触发器将在应用更改之前执行,以验证它是否正在使用“有效”条目进行更新。如果条目无效,则可以拒绝更新。

答案 2 :(得分:0)

这在数据库级别是不可能的。您必须使用存储过程,或将该逻辑放在您的应用程序中。

http://dev.mysql.com/doc/refman/5.5/en/integer-types.html

中等int是你能得到的最接近的。

此外,您可能会在某些时候看到类似的内容:

CREATE TABLE blah ( col INT (5) );

这不符合您的想法。这实际上并不将字段的长度限制为5个位置。它表示当在列上设置zerofill时,它应该被填0到5个位置。