如何指定电话号码?

时间:2013-09-25 19:56:11

标签: mysql

在mysql 5.1中创建表时我在将电话号码指定为整数时收到错误。

错误是“超出范围值”。

我知道我可以将数字指定为varchar。 我只是想知道他们的任何其他方法?

create table emp(
    ename varchar(20), 
    ecity varchar(10),
    salary double,
    enumber integer,
    eaddress varchar(40),
    depttname varchar(25)
);

插入:

insert into emp 
values('priya','delhi',40000,9958465876,'b-64 janak puri new delhi','manager');
  

错误1264(22003):第1行列'enum'超出范围值

4 个答案:

答案 0 :(得分:2)

只需将数字的数据类型更改为BigInt即可。

答案 1 :(得分:2)

如果使用无符号整数,则mysql中的整数最大值为2147483647或4294967295。这意味着默认情况下大多数值都将超出范围。您可以使用BIGINT,其签名范围为9223372036854775807,未签名范围为18446744073709551615.即使考虑到国际拨号,这也足够了。

答案 2 :(得分:2)

您可以尝试使用varchar存储电话号码。但如果有任何具体原因可以使用它,那么您可以使用BIGINT,因为目前您正面临int范围的问题,即4294967295处的最大值。

答案 3 :(得分:2)

电话号码是不将数字存储为字符串的规则的少数例外之一。这是因为:

  • 数字表示通常大于可以存储在字段中的数字表示。
  • 某些电话号码具有不应被剥离的前导零,例如:0014255550177
  • 您可能希望/需要使用+
  • 等电话号码存储非数字字符

如果您想要搜索与特定电话号码匹配的记录,请确保您在该字段上进行输入验证,以便电话号码以一致的格式存储。

即:780-555-1234780 555-1234780.555.1234都应删除多余的字符并存储为7805551234