Mysql
 sql >> Baza danych >  >> RDS >> Mysql

nie można upuścić klucza obcego

Rozwiązanie opisane tu przez Chrisa White'a pracował dla mnie.

Główny problem polega na tym, że MySQL tworzy zarówno indeks, jak i klucz obcy. Oba muszą zostać usunięte (najpierw klucz obcy wbrew temu, co powiedział Chris).

  1. pokaż utwórz tabelę nazwa_tabeli;

    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. Usuń ograniczenie klucza obcego:

    ALTER TABLE table_name DROP FOREIGN KEY `table_name_ibfk_1`;
    
  3. Usuń klucz

    ALTER TABLE table_name DROP KEY `column_tablein_26440ee6`;
    

To zrobiło to dla mnie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najlepszy sposób na zaszyfrowanie/odszyfrowanie ciągu json?

  2. JPA TemporalType.Date z błędną datą

  3. Laravel - jak zaktualizować całą kolekcję

  4. Jak mogę używać Entity Framework na wykresie obiektów powyżej głębokości 2 z MySQL Connector/NET?

  5. Zapytanie SQL sprawdzające, czy nazwa zaczyna się i kończy na samogłoskę