【问题标题】:Exception of Mysql [duplicate]Mysql的异常[重复]
【发布时间】:2015-07-28 11:10:46
【问题描述】:

我想插入手机号码。注册时的用户数,我已经将整数的长度扩展到 255,但我得到了这个异常。谁能解决这个问题?

  com.mysql.jdbc.MysqlDataTruncation: Data truncation:
    Out of range value adjusted for column 'mobno' at row 1

【问题讨论】:

  • 电话号码应该存储为 strings (varchar) 而不是整数类型。
  • 但是为什么整数不适用??
  • 但我没有使用 + 和 0
  • 电话号码不是数学意义上的数字,把它们想象成有自己的字母表的单词(字母 0-9、+、# 等)。

标签: java mysql


【解决方案1】:

数字世界中的一切都是数字。并不是说你不能这样做。就是这样做会让事情变得毫无意义。

除了不应随便忽略的 + 和前导 0 问题之外,对电话号码执行的两个主要操作是验证并以标准格式将其呈现给用户。这两个都更容易用字符串来完成。即使你用一个数字来完成这项工作,你所获得的只是以牺牲可读代码为代价的数据的微压缩。

varchar 是您在 mySQL 中执行此操作的方式。它不需要您提前知道电话号码的长度。

还要注意,同一个电话号码从不同的角度以不同的形式存在。在某些地方,国家代码或区号可以省略。在单独的字段中询问这些内容,输入将更加普遍有用。

格式信息()-. 等在存储时应标准化或剥离,并在显示时重新应用以确保存储独立于显示。

虽然您声称您现在没有使用 + 和前导 0,但请考虑基于数字的设计将来添加它们会有多困难。

MySQL - how to store phone numbers?

【讨论】:

    猜你喜欢
    • 2014-09-18
    • 2013-10-04
    • 2013-01-02
    • 1970-01-01
    • 2018-12-07
    • 2014-01-15
    • 2018-08-12
    • 2014-01-24
    • 1970-01-01
    相关资源
    最近更新 更多