Вы сталкиваетесь с Ссылочная целостность . Не беспокойся, RI твой друг. Он предназначен для защиты вас.
Исходя из вашей структуры, вы не можете удалить из таблицы Member или Group , если строка, которую вы пытаетесь удалить, имеет соответствующую строку в MappingTable .
Если бы система позволила вам это сделать, вы бы имели бесхозные данные в MappingTable без соответствующих данных в таблицах участников или групп. База данных не позволяет вам удалить данные, так как на данные наложено ограничение ссылочной целостности с использованием ограничения внешнего ключа.
Существуют варианты, такие как ON DELETE CASCADE
, но они потенциально очень опасны и могут привести к огромной потере данных. Лично я никогда не применяю каскадные удаления.
Сначала необходимо удалить строки из MappingTable , а затем удалить любые данные из справочных таблиц (элемент, группа)
Сказав это, я должен сказать следующее:
- Сделайте резервные копии (и убедитесь, что у вас есть действительная резервная копия) ваших данных перед их удалением.
- Сделайте еще одну резервную копию, потому что удаленные данные исчезли навсегда.
- Свяжитесь с предприятием / МСП, чтобы подтвердить, что вы поступаете правильно, удалив данные