MySQL Workbench, CASCADE

Узнай цену своей работы

Формулировка задачи:

Салют. Имеется несколько таблиц, связанных между собой. В Foreign Keys этих таблиц, если есть связи между полями, поставил в Foreign Key OPtions CASCADE, но при запуске сервера, и попытке изменить значение в одной из таблицы (связанной с другой) пишет:

Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (`mydb`.`bill`, CONSTRAINT `fk_bill_production1` FOREIGN KEY (`prod_id`) REFERENCES `production` (`production_id`) ON DELETE NO ACTION ON UPDATE NO ACTION)

То бишь CASCADE тут и не пахнет. Собственно, как все-таки это CASCADE правильно установить, чтоб оно работало? Спасибо за внимание.

Решение задачи: «MySQL Workbench, CASCADE»

textual
Листинг программы
Alter `table` SET FOREIGN KEY (foreign_id) REFERENCES main (id)
       ON DELETE CASCADE ON UPDATE CASCADE

Объяснение кода листинга программы

  1. table - название таблицы, к которой применяется операция
  2. foreign_id - название столбца, который является внешним ключом
  3. main - название таблицы, к которой ссылается внешний ключ
  4. id - название столбца, который является первичным ключом в таблице main
  5. ON DELETE CASCADE - действие, которое выполняется при удалении записи в таблице main, на которую ссылается внешний ключ foreign_id
  6. ON UPDATE CASCADE - действие, которое выполняется при обновлении записи в таблице main, на которую ссылается внешний ключ foreign_id

Оцени полезность:

14   голосов , оценка 3.857 из 5