【发布时间】:2020-07-08 14:10:28
【问题描述】:
我有一个在 Docker 容器中运行并使用 InnoDB 引擎的 MySQL 8.0.19。我注意到表整数字段长度被忽略了。
无论是运行 CREATE 还是 ALTER 查询,整数数据类型都会出现问题
CREATE TABLE `test` (
`id` int DEFAULT NULL,
`text_field` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`decimal_field` decimal(6,2) DEFAULT NULL,
`int_field` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
长度在我的 MySQL 客户端 (Navicat) 中显示为 0,但如果使用 SHOW FULL COLUMNS FROMtest; 在控制台中检查,也会出现同样的情况
mysql> SHOW FULL COLUMNS FROM `test`;
+---------------+--------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+---------------+--------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
| id | int | NULL | YES | | NULL | | select,insert,update,references | |
| text_field | varchar(20) | utf8mb4_unicode_ci | YES | | NULL | | select,insert,update,references | |
| decimal_field | decimal(6,2) | NULL | YES | | NULL | | select,insert,update,references | |
| int_field | int | NULL | YES | | NULL | | select,insert,update,references | |
+---------------+--------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
对于两个整数字段,Type 列应该显示 int(11),但事实并非如此。
这是否与我的 MySQL 设置中的某些内容有关,如果是,则必须更改哪个变量?
【问题讨论】:
标签: mysql sql innodb mysql-8.0