我在SQLite中有两个简单的表。
第一张表:notebook_id,notebook_name
(1, lenovo)
(2, hp)
第二张表:model_id,notebook_id,model_name,price
例如
(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;
答案 0 :(得分:1)
这通常被称为亲子关系
所以第一个表是你的父表,第二个表是你的子表。
您可以设置级联删除,以便在删除父行时,
属于该父行的所有子行也将被删除。
有关详细信息,请参阅:
http://www.sqlite.org/foreignkeys.html
尤其是这部分:
“4.3.ON DELETE和ON UPDATE Actions”
参见那里有艺术家和曲目的例子,它是
几乎与你的情况类似(如果不相同)。
当然,您也可以在自己的应用中处理此问题
并且在删除父行之前自己动手,
只需转到子表并删除所有子行
指向那个特定的父行。