创建列时是否需要在MySQL中指定INT的最大长度?

创建列时是否需要在MySQL中指定INT的最大长度?,mysql,int,Mysql,Int,我正在编写一个SQL查询,用于在表中创建一个新列。我的部分查询包括: `phone` INT(8) UNSIGNED NOT NULL DEFAULT 0 电话号码必须正好有8位数字,因为这就是我工作的国家的电话号码的工作方式。但是我不确定是需要使用INT(8)还是只使用INT。编写该部分的另一种方法是: `phone` INT UNSIGNED NOT NULL DEFAULT 0 例如,我知道对于VARCHAR,您指定了长度。例如:VARCHAR(50)。但是在INT的情况下,我不确定,

我正在编写一个SQL查询,用于在表中创建一个新列。我的部分查询包括:

`phone` INT(8) UNSIGNED NOT NULL DEFAULT 0
电话号码必须正好有8位数字,因为这就是我工作的国家的电话号码的工作方式。但是我不确定是需要使用
INT(8)
还是只使用
INT
。编写该部分的另一种方法是:

`phone` INT UNSIGNED NOT NULL DEFAULT 0
例如,我知道对于
VARCHAR
,您指定了长度。例如:
VARCHAR(50)
。但是在
INT
的情况下,我不确定,因为在MySQL中,
INT
在未签名时可以存储最大值4294967295,所以使用
INT(8)
可能没有意义,因为
INT
将始终是
INT
,根据定义,使用
无符号
()时,能够存储最大值4294967295。谢谢。

INT(8)是一种过时的格式构造。最好忽略int类型上的那些


VARCHAR
对于没有数字操作的电话类型可能更好。

谢谢,你说得对。我在网站上找到了同样的建议。所谓的“电话”不太可能是整数。你很少需要加上电话号码,01234和1234不是同一个电话号码
+44 303 123 7300
是一个电话号码,正如
(555)555-5555x2202
1-800-奇数鸟
一样。它们不仅仅是“数字”。