繁体   English   中英

当第一个表中的行被删除时,如何从第二个表中删除数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM