代码之家  ›  专栏  ›  技术社区  ›  Jaime Montoya

创建列时,是否需要在mysql中指定int的最大长度?

  •  1
  • Jaime Montoya  · 技术社区  · 5 年前

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

    `phone` INT(8) UNSIGNED NOT NULL DEFAULT 0
    

    电话必须正好有8位数字,因为这就是我工作的国家/地区的电话号码工作方式。但我不确定是否需要使用 INT(8) 或仅 INT . 写这部分的另一种方法是:

    `phone` INT UNSIGNED NOT NULL DEFAULT 0
    

    我知道 VARCHAR 例如,指定长度。例如: VARCHAR(50) . 但在这种情况下 国际的 我不确定,因为在MySQL中,已经知道 国际的 无符号时可以存储最大值4294967295,因此使用 INT(8) 可能没有意义,因为 国际的 将永远 国际的 根据定义,使用时能够存储最大值4294967295 UNSIGNED ( https://dev.mysql.com/doc/refman/8.0/en/integer-types.html )谢谢您。

    1 回复  |  直到 5 年前
        1
  •  2
  •   danblack    5 年前

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

    VARCHAR 对于没有对其进行数字操作的电话类型来说,可能更好。