我在 SQLite 中有 2 个简单的表。
第一个表:notebook_id、notebook_name
(1, lenovo)
(2, hp)
第二个表:model_id、notebook_id、model_name、价格
例如
(1, 1, y580, 1000)
(2, 1, y510p, 1500)
当我从第一个表中删除联想时,我也想从第二个表中删除联想的型号。我知道我应该使用触发器,但如果有人向我解释这个简单示例的触发器,那就太好了。
我正在添加运行良好的代码,希望对某人有所帮助。
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.删除和更新操作”
请参阅其中包含艺术家和轨道的示例,它是
与您的情况几乎相似(如果不相同)。
当然,您也可以在您的应用程序中处理此问题,
并自己执行此操作,即在删除父行之前,
只需转到子表并删除所有子行
指向特定的父行。
关于sql - 当第一个表中的行被删除时如何从第二个表中删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21064528/