sql >> Databáze >  >> RDS >> Mysql

nelze zahodit cizí klíč

Řešení popsané zde Chris White pracoval pro mě.

Hlavním problémem je, že MySQL vytváří index i cizí klíč. Oba musí být odstraněny (nejprve cizí klíč v rozporu s tím, co řekl Chris).

  1. show create table název_tabulky;

    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. Odstraňte omezení cizího klíče:

    ALTER TABLE table_name DROP FOREIGN KEY `table_name_ibfk_1`;
    
  3. Smazat klíč

    ALTER TABLE table_name DROP KEY `column_tablein_26440ee6`;
    

To se mi povedlo.



  1. Změňte a resetujte kořenové heslo MySQL

  2. Sdružování připojení databáze Celery Worker

  3. Monitorování použitých připojení na mysql k ladění „příliš mnoha připojení“

  4. Hibernate – nepodařilo se líně inicializovat kolekci rolí:beans.Language.patients, nelze inicializovat proxy – žádná relace