Debe intentar con el nombre de la clave externa como Fahim Parkar sugirió. En realidad, eso tampoco funciona siempre.
En mi caso he utilizado el código
FOREIGN KEY `fk`(`col1`) REFERENCES `table2`(`col1`)
para añadir el FK mediante la creación.
El problema con este código es que no es válido y debe arrojar algún tipo de error de sintaxis, pero aún agregó una clave externa con un nombre aleatorio.
Cuando he añadido el FK con la sintaxis correcta:
CONSTRAINT `fk` FOREIGN KEY (`col1`) REFERENCES `table2`(`col1`)
el siguiente código se redujo de forma adecuada:
ALTER TABLE `table1` DROP FOREIGN KEY `fk`
Así que este tipo de error puede ocurrir también si intenta quitar una extranjera clave con un nombre inválido Es importante ver las propiedades de tabla con
SHOW CREATE TABLE `table1`
y verificar los nombres de las claves foráneas si obtiene este tipo de errores.
Esto puede ayudar a entender http://stackoverflow.com/questions/160233/what-does-mysql-error-1025-hy000-error-on-rename-of-foo-errorno-150-me – Imdad
@Imdad Este enlace describe otro error - (errno: 150) – Devart
Pruebe esto. Crear nueva tabla (sin restricción de clave externa). copie los datos a la nueva tabla (usando la sintaxis INSERT INTO new_table SELECT * FROM old_table) Suelta la tabla anterior – Imdad