在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'超出范围值
答案 0 :(得分:2)
只需将数字的数据类型更改为BigInt即可。
答案 1 :(得分:2)
如果使用无符号整数,则mysql中的整数最大值为2147483647或4294967295。这意味着默认情况下大多数值都将超出范围。您可以使用BIGINT,其签名范围为9223372036854775807,未签名范围为18446744073709551615.即使考虑到国际拨号,这也足够了。
答案 2 :(得分:2)
您可以尝试使用varchar
存储电话号码。但如果有任何具体原因可以使用它,那么您可以使用BIGINT
,因为目前您正面临int范围的问题,即4294967295
处的最大值。
答案 3 :(得分:2)
电话号码是不将数字存储为字符串的规则的少数例外之一。这是因为:
0014255550177
+
如果您想要搜索与特定电话号码匹配的记录,请确保您在该字段上进行输入验证,以便电话号码以一致的格式存储。
即:780-555-1234
,780 555-1234
,780.555.1234
都应删除多余的字符并存储为7805551234
。