Esto es muy común sobre todo cuando se importan ficheros sql generados desde sistemas como Navicat, SQLYog o programas similares. El error se produce por que se intenta importar un fichero SQL que tiene definida una tabla con una columna como autoincremental, pero no está como clave primaria, por ejemplo:
-- ---------------------------- -- Table structure for `prefix_admintools_badwords` -- ---------------------------- DROP TABLE IF EXISTS `prefix_admintools_badwords`; CREATE TABLE `prefix_admintools_badwords` ( `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT , `word` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1
Como podéis ver la columna id está creada como autoincremental, pero en ninguna parte se indica que sea clave primaria. Para solucionarlo habría que cambiarlo por esto:
-- ---------------------------- -- Table structure for `prefix_admintools_badwords` -- ---------------------------- DROP TABLE IF EXISTS `prefix_admintools_badwords`; CREATE TABLE `prefix_admintools_badwords` ( `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT , `word` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1
Básicamente hemos añadido esta línea:
Y con esto quedaría solucionado y ya se podría importar la base de datos con normalidad desde phpMyAdmin.