sql >> Database teknologi >  >> RDS >> Mysql

ude af stand til at slippe fremmednøglen

Løsningen beskrevet her af Chris White virkede for mig.

Grundproblemet er, at MySQL opretter både et indeks og en fremmednøgle. Begge skal fjernes (den fremmede nøgle først i modsætning til hvad Chris sagde).

  1. vis opret tabel tabelnavn;

    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. Slet den fremmede nøgle-begrænsning:

    ALTER TABLE table_name DROP FOREIGN KEY `table_name_ibfk_1`;
    
  3. Slet nøglen

    ALTER TABLE table_name DROP KEY `column_tablein_26440ee6`;
    

Det gjorde det for mig.



  1. Lagring af id'er som kommaseparerede værdier

  2. Databasetip til begyndere

  3. Hvilken ORM skal jeg bruge til Node.js og MySQL?

  4. Separat anden version af et websted