DELETE CASCADE в PostgreSQL используется для автоматического удаления связанных записей в дочерних таблицах при удалении родительской записи. 14 Эта функция помогает поддерживать ссылочную целостность базы данных, гарантируя, что зависимые записи удаляются вместе с соответствующими записями. 1
Чтобы использовать DELETE CASCADE, нужно выполнить следующие шаги: 2
- Создать связанные таблицы. 1 Например, родительскую таблицу (parenttable) и дочернюю (childtable). 1 В дочерней таблице должен быть внешний ключ (parent_id), который ссылается на столбец id родительской таблицы. 1
- Определить ограничение внешнего ключа. 4 При создании ограничения внешнего ключа нужно указать опцию ON DELETE CASCADE. 23 Это позволит PostgreSQL автоматически удалять любые записи в дочерней таблице, которые связаны с удаляемой записью в родительской таблице. 23
Пример использования DELETE CASCADE: 1
- Создать таблицы для хранения отделов и сотрудников. 1 В этой настройке у отдела может быть один или несколько сотрудников, и каждый сотрудник принадлежит отделу. 1
- Вставить записи в таблицы. 1 Например, в таблицу отделов (departments) нужно вставить записи «Инженерные разработки» и «Продажи», а в таблицу сотрудников (employees) — записи «Джон Доу», «Джейн Смит» и «Майкл Джонсон». 1
- Удалить отдел. 1 Например, нужно выполнить команду DELETE FROM departments WHERE id = 1. 1 Это удалит всех сотрудников, принадлежащих отделу с id = 1, благодаря действию DELETE CASCADE, определённому для ограничения внешнего ключа. 1
- Проверить удаление. 1 Нужно извлечь данные из таблицы сотрудников, чтобы убедиться, что сотрудники, связанные с удалённым отделом, успешно удалены. 1
Важно использовать DELETE CASCADE с осторожностью, так как при неаккуратном обращении это может привести к непреднамеренной потере данных. 4 Перед применением DELETE CASCADE нужно оценить требования приложения и отношения между таблицами. 4