¿Desea eliminar la clave única de muli-column sin eliminar una clave externa?

Estoy intentando eliminar una clave única de varias columnas de una tabla que también tiene una clave externa. Sigo obteniendo 'errno 150', a menos que elimine la clave externa primero.

Por ejemplo, si creo la tabla:

CREATE TABLE `testtable` (
    `testtable_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `testtable_value` char(255) DEFAULT NULL,
    `othertable_id` int(10) unsigned NOT NULL,
    PRIMARY KEY (`testtable_id`),
    UNIQUE KEY `tt_unique_key` (`othertable_id`,`testtable_value`),
    CONSTRAINT `tt_foreign_key` FOREIGN KEY (`othertable_id`) REFERENCES `othertable` (`othertable_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

y trato de eliminar la clave única como esta:

ALTER TABLE `testtable` DROP KEY `tt_unique_key`;

Genera el error:

Error Code: 1025
Error on rename of './testdb/#sql-374_27' to './testdb/testtable' (errno: 150)

Intenté configurar FOREIGN_KEY_CHECKS = 0, pero obtengo el mismo error:

SET FOREIGN_KEY_CHECKS = 0;
ALTER TABLE `testtable` DROP KEY `tt_unique_key`;
SET FOREIGN_KEY_CHECKS = 1;

Esto genera el mismo mensaje de error que el anterior.

Sin embargo, si primero elimino la clave externa, luego elimino la clave única, luego recrea la clave externa, todo funciona:

ALTER TABLE `testtable` DROP FOREIGN KEY `tt_foreign_key`;
ALTER TABLE `testtable` DROP KEY `tt_unique_key`;
ALTER TABLE `testtable` ADD CONSTRAINT `tt_foreign_key` FOREIGN KEY (`othertable_id`) REFERENCES `othertable` (`othertable_id`);

Esto parece realmente ineficiente. ¿Puede alguien explicar qué está pasando? ¿Hay alguna forma de soltar la clave única sin soltar primero la clave externa?

Respuestas a la pregunta(1)

Su respuesta a la pregunta