您的位置:首页 > 产品设计 > UI/UE

手机字段存储报错 :Warning Code : 1264 Out of range value for column 'buyer_tpl' at row 1

2019-06-15 09:07 2306 查看

企鹅上朋友问我: 我这明明是11位的int 为啥还说超出范围了呢,然后发来报警截图
 

 

 

我看到是 buyer_tpl int(13)  unsigned NOT NULL,就知道是怎么回事了,打开dev.mysql.com/doc,找到int的章节,截图发给他

 

 

手机号码作为数字的话,已经超过了unsigned的峰值4294967296了,给他2个建议

1  将int类型换成bigint

2 将int类型换成varchar(11)的。

 

他问我 :“ bigint  和 varchar 存数字哪个好? 就11位手机这种。“

我说:“一般用int主要是考虑运算计算以及状态值之类的,很少把包含具体业务意义的字段设置成int,时间戳这种,一般用datetime的,也可以设置成bigint,因为时间戳有涉及到计算的,手机字段一般用varchar居多的。”

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: