【问题标题】:how delete data from second table when row in first are deleting删除第一行时如何从第二个表中删除数据
【发布时间】:2014-01-30 14:51:41
【问题描述】:

我在 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;

【问题讨论】:

    标签: sql database sqlite database-design triggers


    【解决方案1】:

    这通常称为父子关系。
    所以第一个表是你的父表,第二个表是你的子表。
    您可以设置级联删除,以便在删除父行时,
    属于该父行的所有子行也将被删除。

    欲了解更多信息,请参阅:

    http://www.sqlite.org/foreignkeys.html

    尤其是这部分:

    “4.3. ON DELETE 和 ON UPDATE 操作”

    查看艺术家和曲目的示例,它是
    几乎与您的情况相似(如果不相同)。

    当然,您也可以在您的应用中处理此问题,
    自己做,即在删除父行之前,
    只需转到子表并删除所有子行
    指向那个特定的父行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      相关资源
      最近更新 更多