J'utilise mariadb ("10.1.20-MariaDB-1 ~ fidèle") avec utf8mb4. Maintenant, je suis en train de convertir toutes les tables en "row_format = dynamic" et en table "utf8mb4_unicode_ci". J'ai remarqué qu'il y a quelques tables voyous dans ma base de données qui ont encore "utf8mb4_general_ci" comme collation, comme celui-ci:Mysql convertir table, classement ne change pas
utiliser la base de données;
AFFICHER TABLE STATUS OERE COLLATION! = "Utf8mb4_unicode_ci";
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+--------------------+---------+
| table | InnoDB | 10 | Dynamic | 5 | 3276 | 16384 | 0 | 32768 | 0 | NULL | 2016-12-21 21:12:18 | NULL | NULL | utf8mb4_general_ci | NULL | row_format=DYNAMIC |
Alors bien sûr, je courrais quelque chose comme ceci:
ALTER TABLE Table CONVERT À CARACTÈRE SET COLLATE utf8mb4 utf8mb4_unicode_ci;
Qui se terminerait sans erreur. Vérification tableau état nouveau par la suite, lit encore
Collation = utf8mb4_general_ci
pour cette table.
En vidant et en important cette même base de données dans mon serveur Percona local 5.6.32-78.0 et en faisant de même, le classement de la table sera converti en utf8mb4_unicode_ci comme souhaité.
Est-ce que quelqu'un a une idée de ce qui pourrait être la cause de cela?
/* Erreur SQL (1071): clé spécifiée était trop long; La longueur maximale de la clé est de 767 octets */ –
@ user345426, veuillez coller la sortie de 'SHOW CREATE TABLE'. – elenst
Merci, ça l'a corrigé! – Kotwarrior