[英]how delete data from second table when row in first are deleting
我在SQLite中有2个简单表。
第一个表:notebook_id,notebook_name
(1, lenovo)
(2, hp)
第二张表:model_id,notebook_id,model_name,价格
例如
(1, 1, y580, 1000)
(2, 1, y510p, 1500)
当我从第一个表中删除lenovo时,我也想从第二个表中删除lenovo的模型。 我知道我应该使用触发器,但是如果有人在这个简单的例子中向我解释触发器,那将是很棒的。
我正在添加可以正常工作的代码,希望对您有所帮助。
CREATE TRIGGER trigger_name
BEFORE DELETE ON notebook
BEGIN
DELETE
FROM model
WHERE notebook_id = old.notebook_id;
END;
这通常称为父子关系。
因此,第一个表是您的父表,第二个表是您的子表。
您可以设置级联删除,以便在删除父行时,
属于该父行的所有子行也将被删除。
有关更多信息,请参见:
http://www.sqlite.org/foreignkeys.html
特别是这部分:
“ 4.3。ON DELETE和ON UPDATE操作”
请参阅其中包含艺术家和曲目的示例,它是
实际上与您的情况类似(如果不相同)。
当然,您也可以在您的应用中处理此问题,
然后自己做,即在删除父行之前,
只需转到子表并删除所有子行
指向该特定的父行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.