Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何指定电话号码?_Mysql - Fatal编程技术网

Mysql 如何指定电话号码?

Mysql 如何指定电话号码?,mysql,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

在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”列的值超出范围


只需将enumber的数据类型更改为BigInt就可以了

只需将enumber的数据类型更改为BigInt就可以了

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

mysql中的整数的最大值为2147483647,如果使用无符号整数,则为4294967295。这意味着默认情况下大多数值将超出范围。可以使用BIGINT,有符号范围为9223372036854775807,无符号范围为18446744073709551615。这就足够了,即使考虑到国际拨号,我想。

您可以尝试使用
varchar
存储电话号码。但是如果有任何具体的原因,那么您可以使用
BIGINT
,因为您目前面临的问题是int的范围,最大值为
4294967295
,您可以尝试使用
varchar
来存储电话号码。但是,如果有任何特定的原因,那么您可以使用
BIGINT
,因为目前您面临int范围的问题,最大值为
4294967295
,电话号码是不将号码存储为字符串规则的少数例外之一。这是因为:

  • 通常,数值表示比字段中存储的数值大
  • 有些电话号码的前导零不应去掉,例如:
    0014255550177
  • 您可能希望/需要使用电话号码存储非数字字符,如
    +
如果你想搜索与某个特定电话号码匹配的记录,只需确保你在现场输入验证时做了额外的努力,以便电话号码以一致的格式存储


例如:
780-555-1234
780-555-1234
780.555.1234
都应该删除多余的字符,并存储为
780555234
,电话号码是不将数字存储为字符串规则的少数例外之一。这是因为:

  • 通常,数值表示比字段中存储的数值大
  • 有些电话号码的前导零不应去掉,例如:
    0014255550177
  • 您可能希望/需要使用电话号码存储非数字字符,如
    +
如果你想搜索与某个特定电话号码匹配的记录,只需确保你在现场输入验证时做了额外的努力,以便电话号码以一致的格式存储


例如:
780-555-1234
780-555-1234
780.555.1234
都应该删除多余的字符并存储为
780555234

因为它不用于数学目的,所以它应该是字符串。您喜欢将它存储为整数有什么具体原因吗?因为它不用于数学目的,所以它应该是一个字符串string您喜欢将其存储为整数的具体原因是什么?尽管
bigint
有足够的空间来保存这些值,但电话号码并不用于数学目的。我会将它们存储为字符串(
char
varchar
)@Barranka:-我完全同意您的意见,如果没有任何具体要求使用int或BIGINT来存储电话号码。否则,应该使用varcharprefered@RahulTripathi我能想到的唯一可能的考虑是所需的空间(
BIGINT
需要8个字节,
VARCHAR
需要存储的字符串长度加上1个字节)。如果表很小,那么考虑的问题就很简单了。尽管
bigint
有足够的空间来保存这些值,但电话号码并不用于数学目的。我会将它们存储为字符串(
char
varchar
)@Barranka:-我完全同意您的意见,如果没有任何具体要求使用int或BIGINT来存储电话号码。否则,应该使用varcharprefered@RahulTripathi我能想到的唯一可能的考虑是所需的空间(
BIGINT
需要8个字节,
VARCHAR
需要存储的字符串长度加上1个字节)。如果表格很小,那么这种考虑是微不足道的。