O MySQL 8.0 alterou a implementação de algumas visualizações no INFORMATION_SCHEMA:
https://mysqlserverteam.com/mysql-8-0-improvements- to-information_schema/ diz:
Portanto, isso está sendo feito por boas razões, mas entendo que isso perturbou algumas de suas consultas quando você busca resultados em matrizes associativas com base no nome da coluna.
Você pode ver que a definição da visão declara o nome da coluna explicitamente em letras maiúsculas:
mysql 8.0.14> SHOW CREATE VIEW CHARACTER_SETS\G
*************************** 1. row ***************************
View: CHARACTER_SETS
Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`mysql.infoschema`@`localhost` SQL SECURITY DEFINER VIEW `CHARACTER_SETS` AS
select
`cs`.`name` AS `CHARACTER_SET_NAME`,
`col`.`name` AS `DEFAULT_COLLATE_NAME`,
`cs`.`comment` AS `DESCRIPTION`,
`cs`.`mb_max_length` AS `MAXLEN` -- delimited column explicitly uppercase
from (`mysql`.`character_sets` `cs`
join `mysql`.`collations` `col` on((`cs`.`default_collation_id` = `col`.`id`)))
character_set_client: utf8
collation_connection: utf8_general_ci
Você pode contornar a mudança de duas maneiras:
Você pode declarar seus próprios aliases de coluna no caso desejado ao consultar uma visualização:
mysql 8.0.14> SELECT MAXLEN AS `maxlen`
FROM `information_schema`.`CHARACTER_SETS` LIMIT 2;
+--------+
| maxlen |
+--------+
| 2 |
| 1 |
+--------+
Você pode começar o hábito de consultar colunas em maiúsculas antes de 8.0. Aqui está um teste mostrando resultados na minha sandbox 5.7:
mysql 5.7.24> SELECT MAXLEN
FROM `information_schema`.`CHARACTER_SETS` LIMIT 2;
+--------+
| MAXLEN |
+--------+
| 2 |
| 1 |
+--------+
Ou você pode buscar resultados em uma matriz não associativa e referenciar colunas pelo número da coluna, em vez de pelo nome.