У меня MySQL 8.0.19, работающий в контейнере Docker и использующий движок InnoDB. Я заметил, что значения целочисленных полей таблицы игнорируются.
Проблема возникает с целочисленными типами данных, независимо от того, выполняется ли запрос 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;
Длина отображается как 0 в моем MySQL client (Navicat), но то же самое происходит при проверке в консоли с помощью SHOW FULL COLUMNS FROM
test ;
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 настройках, и если да, то какую переменную нужно будет изменить?