sql >> Databasteknik >  >> RDS >> Mysql

kan inte släppa den främmande nyckeln

Lösningen som beskrivs här av Chris White fungerade för mig.

Rotproblemet är att MySQL skapar både ett index och en främmande nyckel. Båda måste tas bort (den främmande nyckeln först i motsats till vad Chris sa).

  1. visa skapa tabell tabellnamn;

    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. Ta bort den främmande nyckelbegränsningen:

    ALTER TABLE table_name DROP FOREIGN KEY `table_name_ibfk_1`;
    
  3. Ta bort nyckeln

    ALTER TABLE table_name DROP KEY `column_tablein_26440ee6`;
    

Det gjorde det för mig.



  1. Hur man skapar en inventeringsdatabas i Microsoft Access

  2. Gruppera efter alias (Oracle)

  3. Hur man ändrar datum- och tidsformat i MySQL

  4. Ett bättre sätt att köra flera MySQL-kommandon med hjälp av skalskript