Sé que las preguntas con este título han sido respondidas anteriormente, pero lean. He leído detenidamente todas las demás preguntas/respuestas sobre este error antes de publicarlas.# 1071 - La clave especificada era demasiado larga; la longitud máxima de la clave es 1000 bytes
estoy recibiendo el error anterior para la siguiente consulta:
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;
¿Alguien tiene idea de por qué y cómo solucionarlo? El problema es que esta misma consulta funciona perfectamente en mi máquina local y funcionó tan bien en mi host anterior. Btw.it es de un proyecto maduro - phpdevshell - así que supongo que estos tipos saben lo que están haciendo, aunque nunca se sabe.
Cualquier pista apreciada.
Estoy usando phpMyAdmin.
Muchas gracias por la explicación detallada. Además de solucionar un problema, también aprendí algo valioso. – CodeVirtuoso
Esa es una consulta ordenada, ¡gracias por compartir! – yekta
Realmente, una consulta muy útil para conocer la longitud a la que se debe establecer el índice. He estado usando esto algunas veces para determinar la mejor duración para un índice. ¡Gracias por compartir! –