【发布时间】:2019-01-24 23:40:57
【问题描述】:
我正在编写用于在表中创建新列的 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,并且根据定义,在使用UNSIGNED (https://dev.mysql.com/doc/refman/8.0/en/integer-types.html) 时能够存储最大值4294967295。谢谢。
【问题讨论】:
-
所谓“电话”的东西不太可能是整数。您很少需要将电话号码相加,而且 01234 和 1234 不是同一个电话号码!
-
+44 303 123 7300是电话号码,(555)555-5555x2202和1-800-ODD-BIRD也是。它们不仅仅是“数字”。