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

ERROR 1215. MySql InnoDB

Тествах създаването на таблицата ви.

Тогава получих повече информация за грешката във външния ключ:

mysql> show engine innodb status\G

------------------------
LATEST FOREIGN KEY ERROR
------------------------
2018-02-20 14:51:33 700002d90000 Error in foreign key constraint of table calls/called:

    FOREIGN KEY (`Code`)
    REFERENCES `calls`.`city` (`Code`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `Number`
    FOREIGN KEY (`Number`)
    REFERENCES `calls`.`subscriber` (`Number`)
    ON DELETE CASCADE
    ON UPDATE CASCADE):
Cannot find an index in the referenced table where the
referenced columns appear as the first columns, or column types
in the table and the referenced table do not match for constraint.
...

Виждам проблема:имате съставен първичен ключ в city на колони (Name, Code) . За целта трябва да създадете един ограничение на външния ключ, отнасящо се за и двете колони на първичния ключ на родителя.

Като това:

CONSTRAINT `Name`
FOREIGN KEY (`Name`, `Code`)
REFERENCES `calls`.`city` (`Name`, `Code`)
ON DELETE CASCADE
ON UPDATE CASCADE

Не декларирайте ограничение за всяка колона – декларирайте едно ограничение, което препраща към двете колони на ключа.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Добавяне на уникално ограничение

  2. За какво е jdbc драйверът org.gjt.mm.mysql.Driver?

  3. MySQL:Попълнете ефективно таблица в рамките на съхранена процедура

  4. В MySQL как да върна седмицата от месеца?

  5. Инструкция COUNT CASE и WHEN в MySQL