Mysql
 sql >> база данни >  >> RDS >> Mysql

не може да изпусне външния ключ

Решението, описано тук от Крис Уайт работи за мен.

Основният проблем е, че MySQL създава както индекс, така и външен ключ. И двете трябва да бъдат премахнати (първо външният ключ, противно на казаното от Крис).

  1. покажи създаване на таблица име_на_таблица;

    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. Изтрийте ограничението на външния ключ:

    ALTER TABLE table_name DROP FOREIGN KEY `table_name_ibfk_1`;
    
  3. Изтрийте ключа

    ALTER TABLE table_name DROP KEY `column_tablein_26440ee6`;
    

Това направи това за мен.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Речник на базата данни на DevOps за начинаещи в MySQL

  2. `date` е валидно име на колона на mysql?

  3. MySQLdb в Python:Не мога да се свържа с MySQL сървър на „localhost“

  4. Как мога да направя незадължително JOIN с SQL

  5. Когато ВМЕСЯ няколко реда в MySQL таблица, идентификаторите ще се увеличават ли с 1 всеки път?