sql >> Base de Datos >  >> RDS >> Mysql

incapaz de soltar la clave foránea

La solución descrita aquí por Chris White trabajó para mi.

El problema de raíz es que MySQL crea tanto un índice como una clave externa. Ambos deben ser eliminados (la clave foránea primero contrariamente a lo que dijo Chris).

  1. mostrar crear tabla table_name;

    SHOW CREATE TABLE `table_name`:
    
    | table_name | CREATE TABLE `table_name` (
      `id` int(20) unsigned NOT NULL auto_increment,
      `key_column` smallint(5) unsigned default '1',
      KEY `column_tablein_26440ee6` (`key_column`),  <--- shows key name
      CONSTRAINT `table_name_ibfk_1` FOREIGN KEY (`key_column`) REFERENCES <--- shows foreign key constraint name
    `second_table` (`id`) ON DELETE SET NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
    
  2. Eliminar la restricción de clave externa:

    ALTER TABLE table_name DROP FOREIGN KEY `table_name_ibfk_1`;
    
  3. Eliminar la clave

    ALTER TABLE table_name DROP KEY `column_tablein_26440ee6`;
    

Eso lo hizo por mí.