Я применил ограничения DELETE CASCADE и UPDATE CASCADE для дочерней таблицы.После применения каскада DELETE и UPDATE, не имеющего возможности DELETE/UPDATE из родительской таблицы
alter table table_product_categories add constraint fk_product_id1 foreign key (product_id) references table_products (product_id) on delete cascade;
alter table table_product_categories add constraint fk_product_id2 foreign key (product_id) references table_products (product_id) on update cascade;
Теперь при попытке удаления в родительской таблице:
DELETE FROM table_products WHERE `table_products`.`product_id` = 1819
Получение этой ошибки:
MySQL говорит: Документация
1451 - Cannot delete or update a parent row: a foreign key constraint fails (`table_product_categories`, CONSTRAINT `fk_product_id1` FOREIGN KEY (`product_id`) REFERENCES `table_products` (`product_id`) ON UPDATE CASCADE)
При попытке обновить родительской таблицы
UPDATE `wokoshop`.`table_products` SET `product_id` = '1' WHERE `table_products`.`product_id` =1819
Получение этой ошибки:
1452 - Cannot add or update a child row: a foreign key constraint fails (`wokoshop`.`table_product_categories`, CONSTRAINT `fk_product_id2` FOREIGN KEY (`product_id`) REFERENCES `table_products` (`product_id`) ON DELETE CASCADE)
Что является причиной ошибок и как ее решить?
я не уверен, если это имеет значение, но вам не нужно создавать два различных ограничений. Создайте одно ограничение с параметрами 'cascade'. – Barmar
будет ли порядок каскада иметь значение? –
Я так не думаю. – Barmar