Mysql
 sql >> база данни >  >> RDS >> Mysql

какви са промените в случай на набор от редове на mysql 8?

MySQL 8.0 промени изпълнението на някои изгледи в INFORMATION_SCHEMA:

https://mysqlserverteam.com/mysql-8-0-improvements- към-информационна_схема/ казва:

Така че това се прави по основателни причини, но разбирам, че е разстроило някои от вашите заявки, когато извличате резултати в асоциативни масиви въз основа на името на колона.

Можете да видите, че дефиницията на изгледа декларира името на колоната изрично с главни букви:

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

Можете да заобиколите промяната по няколко начина:

Можете да декларирате свои собствени псевдоними на колони в желания случай, когато правите заявка за изглед:

mysql 8.0.14> SELECT MAXLEN AS `maxlen` 
  FROM `information_schema`.`CHARACTER_SETS` LIMIT 2;
+--------+
| maxlen |
+--------+
|      2 |
|      1 |
+--------+

Бихте могли да започнете навик да заявявате колони с главни букви преди 8.0. Ето тест, показващ резултати в моята пясъчна среда 5.7:

mysql 5.7.24> SELECT MAXLEN 
  FROM `information_schema`.`CHARACTER_SETS` LIMIT 2;
+--------+
| MAXLEN |
+--------+
|      2 |
|      1 |
+--------+

Или можете да извлечете резултати в неасоциативен масив и да препратите колони по номер на колона, вместо по име.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използваните изрази SELECT имат различен брой колони

  2. Пинкод база данни на Индия със скрипт за намиране на местоположение в php и jquery

  3. Изпълнете PDO с масив, съдържащ нулеви стойности

  4. Mysql:Изрежете всички полета в базата данни

  5. Сравняване на Oracle MySQL, Percona Server и MariaDB