表格清单中有多个电影实例,我试图从表格电影中删除一个具有给定标题的电影。这是我目前的查询,但它会抛出一个错误:
DELETE FROM inventory
WHERE film_id IN (SELECT film_id
FROM film
WHERE title = "ACADEMY DINOSAUR")
AND store_id = 1
LIMIT 1
我收到此错误:
Cannot delete or update a parent row: a foreign key constraint fails
胶片表值图像
库存表值图像
任何帮助将不胜感激,谢谢
产生的错误与删除或限制无关,而是与名为 foreign_key_checks 的系统变量有关。 可以通过在语句之前添加一行并在语句后添加另一行来更改它以将其更改回来。 根据您的使用情况,您可能需要查看禁用它的缺点,即添加与外键冲突的数据,但这将阻止该错误的发生:
SET foreign_key_checks = 0;
DELETE FROM inventory
WHERE film_id IN (SELECT film_id
FROM film
WHERE title = "ACADEMY DINOSAUR")
AND store_id = 1
LIMIT 1
SET foreign_key_checks = 1;