首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制整型数据类型字段长度

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

Stack Overflow用户
提问于 2012-05-08 14:34:30
回答 3查看 109关注 0票数 5

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

这可以在MySQL中实现吗?我已经看了文档,但没有找到我的答案。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-08 14:42:53

不幸的是,MySQL中既没有实现CHECK约束,也没有实现用户定义的类型。也许这在未来的版本中会有所改变。

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

代码语言:javascript
复制
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
//
票数 3
EN

Stack Overflow用户

发布于 2012-05-08 14:36:24

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

票数 1
EN

Stack Overflow用户

发布于 2012-05-08 14:35:54

这在DB级别是不可能做到的。您必须使用存储过程,或者将该逻辑放入应用程序中。

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

一个中等大小的int是你能得到的最接近的。

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

代码语言:javascript
复制
CREATE TABLE blah ( col INT (5) );

不过,这并不像您所想的那样。这实际上不会将字段的长度限制为5位。它表示当在列上设置zerofill时,它应该是0填充到5位。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10493758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档