我有3个表:contact
,group
和contactGroup
。
contact
和group
有自己的ID,contactGroup
具有id-contact和group-id
所以我想删除一个id组,然后如果删除该id组,那么也必须删除contactGroup。
在sqlite上可能吗?那怎么办呢?
答案 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
);