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
Объяснение кода листинга программы
table
- название таблицы, к которой применяется операцияforeign_id
- название столбца, который является внешним ключомmain
- название таблицы, к которой ссылается внешний ключid
- название столбца, который является первичным ключом в таблицеmain
ON DELETE CASCADE
- действие, которое выполняется при удалении записи в таблицеmain
, на которую ссылается внешний ключforeign_id
ON UPDATE CASCADE
- действие, которое выполняется при обновлении записи в таблицеmain
, на которую ссылается внешний ключforeign_id