创建列时是否需要在MySQL中指定INT的最大长度?
我正在编写一个SQL查询,用于在表中创建一个新列。我的部分查询包括:创建列时是否需要在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的情况下,我不确定,
`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-奇数鸟
一样。它们不仅仅是“数字”。