Quelle version ? Quel CHARACTER SET
? Et d'autres problèmes. Avant la version 5.5, il y avait CHARACTER SET utf8
, qui nécessite jusqu'à 3 octets par caractère, mais pas utf8mb4
, qui nécessite jusqu'à 4. Avec 5.7 (10.2 ?), le problème était "résolu". Pendant ce temps, un index avait été limité à 767 octets; non c'est 3072.
Votre index sur un VARCHAR(500)
nécessite 1500 ou 2000 octets.
Voici ma liste de 5 choses qui pourraient être faites :http://mysql.rjweb .org/doc.php/limits#767_limit_in_innodb_indexes
Vous devez choisir parmi eux en fonction du défaut avec lequel vous pouvez vivre.