162 votes

#1071 - La clé spécifiée était trop longue ; la longueur maximale de la clé est de 1000 octets.

Je sais qu'il a déjà été répondu à des questions portant ce titre, mais je vous invite à poursuivre votre lecture. J'ai lu attentivement toutes les autres questions/réponses sur cette erreur avant de poster.

J'obtiens l'erreur ci-dessus pour la requête suivante :

CREATE TABLE IF NOT EXISTS `pds_core_menu_items` (
  `menu_id` varchar(32) NOT NULL,
  `parent_menu_id` int(32) unsigned DEFAULT NULL,
  `menu_name` varchar(255) DEFAULT NULL,
  `menu_link` varchar(255) DEFAULT NULL,
  `plugin` varchar(255) DEFAULT NULL,
  `menu_type` int(1) DEFAULT NULL,
  `extend` varchar(255) DEFAULT NULL,
  `new_window` int(1) DEFAULT NULL,
  `rank` int(100) DEFAULT NULL,
  `hide` int(1) DEFAULT NULL,
  `template_id` int(32) unsigned DEFAULT NULL,
  `alias` varchar(255) DEFAULT NULL,
  `layout` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`menu_id`),
  KEY `index` (`parent_menu_id`,`menu_link`,`plugin`,`alias`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Quelqu'un sait-il pourquoi et comment le réparer ? Le problème est que cette même requête fonctionne parfaitement sur ma machine locale, et fonctionnait aussi bien sur mon hôte précédent. Il s'agit d'un projet mature - phpdevshell - donc je suppose que ces personnes savent ce qu'elles font, mais on ne sait jamais.

Tout indice sera apprécié.

J'utilise phpMyAdmin.

-1voto

AkshayMesharam Points 21

Je suis passé par tant d'astuces... mais aucune ne fonctionne pour moi et puis j'ai trouvé... le meilleur et le plus simple

       if you are working with mysql-workbench,
       while altering index select (Engine:)-innoDb.
       apply and enjoy...

-1voto

hatanooh Points 1249

Si le sql n'est pas créé par vous-même, il suffit peut-être de vérifier et de définir la longueur de la colonne à la longueur habituelle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X