是否可以在2个表中删除1行sqlite

时间:2019-02-19 18:39:00

标签: javascript sql database sqlite

我有3个表:contactgroupcontactGroup

contactgroup有自己的ID,contactGroup具有id-contact和group-id

所以我想删除一个id组,然后如果删除该id组,那么也必须删除contactGroup。

在sqlite上可能吗?那怎么办呢?

1 个答案:

答案 0 :(得分:0)

您应该在联结表contactGroup的ContactId列中设置一个外键,该外键引用Group表中相应记录的ID。通过在外键的声明中启用选项ON DELETE CASCADE,您将完全得到您期望的行为:每当在Group表中删除记录时,contactGroup中的子记录也将被自动删除。

您可能希望groupContact的ContactId列具有相同的行为,该行为引用了Contact表。

DDL示例:

CREATE TABLE track(
    GroupId      INTEGER, 
    ContactId   INTEGER, 
    FOREIGN KEY(GroupId) REFERENCES Group(Id ) ON DELETE CASCADE,
    FOREIGN KEY(ContactId) REFERENCES Contact(Id ) ON DELETE CASCADE

);