mysql - 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 我不确定,因为在 MySQL 中,已经知道 INT 在未签名时可以存储最大值 4294967295,所以使用 INT(8) 可能没有意义,因为 INT 将始终是 INT 并且根据定义,使用 时能够存储最大值 4294967295 >未签名 ( https://dev.mysql.com/doc/refman/8.0/en/integer-types.html )。谢谢。

最佳答案

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

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

关于mysql - MySQL创建列时是否需要指定INT的最大长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54357007/

相关文章:

php - Woocommerce - 使用特定属性列出产品

c - C 中可以处理不同输入形式(int 和 str)的程序

java - 查找数组中第二大偶数整数的有效方法

java - java中如何将数字四舍五入到小数点后两位?

python - Pandas :减去两个日期列,结果是一个整数

php - SQL - 按相关性对结果排序

php - PDO::prepare() 如何生成 PDOStatement 对象?

mysql - 从 select 内的子查询生成的别名字段

mysql - 可以提高重叠预订查询的性能吗?

mysql - 如何从mysql中的字符串创建int列表?