Возможно ли удалить 1 строку в 2 таблицах sqlite - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть 3 таблицы: contact, group и contactGroup.

contact и group имеют свои собственные идентификаторы, а contactGroup имеет id-контакт и идентификатор группы

Итак, я хочу удалить одну группу идентификаторов, а затем, если эта группа идентификаторов удалена, так что contactGroup также должна быть удалена.

Возможно ли это на sqlite?И как это сделать тогда?

1 Ответ

0 голосов
/ 19 февраля 2019

Вы должны установить внешний ключ в столбце ContactId в соединительной таблице contactGroup, которая ссылается на идентификатор соответствующей записи в таблице Group.Включив опцию ON DELETE CASCADE в объявлении внешнего ключа, вы получите именно то поведение, которое ожидаете: всякий раз, когда запись удаляется в таблице Group, дочерние записи в contactGroup автоматически удаляются какну.

Вы, вероятно, хотите того же поведения для столбца ContactId в groupContact, который ссылается на таблицу контактов.

Пример 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

);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...