我是数据库新手,对删除数据有疑问。我想从一个表中删除一行,而该表链接到另外两个不同的表。
见表格图片:
我尝试了这个代码,但它给了我一个错误:
delete jbsupplier,jbitem
from jbitem
inner join jbsupplier
inner join jbcity
where jbitem.supplier=jbsupplier.id
and jbsupplier.city=jbcity.id;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`louhj600`.`jbitem`, CONSTRAINT `fk_item_supplier` FOREIGN KEY (`supplier`) REFERENCES `jbsupplier` (`id`))
谁能给我一些建议和帮助吗。
提前谢谢/louise
1条答案
按热度按时间g2ieeal71#
外键是存储在一个表中的值,这些值最初来自另一个表。
尽管你的模式不见了,但我有种感觉是这样的:
city是顶级表,其id在supplier中引用。物料中引用了供应商id。
因此,为了从亚特兰大删除供应商。您需要首先删除亚特兰大供应商的所有项目。然后删除供应商。
使用2个查询最容易做到这一点。