【问题标题】:Does the maximum length of INT need to be specified in MySQL when creating a column?MySQL创建列时是否需要指定INT的最大长度?
【发布时间】: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-5555x22021-800-ODD-BIRD 也是。它们不仅仅是“数字”。

标签: mysql int


【解决方案1】:

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

VARCHAR 可能更适合没有对它们进行数字操作的 PHONE 类型。

【讨论】:

猜你喜欢
  • 2015-07-26
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 2017-04-04
  • 2011-10-26
  • 1970-01-01
相关资源
最近更新 更多