Существует 2 таблицы:
, первая из них Таблица отца
create table win_folder_principal(
id_folder_principal serial primary key not null,
folder_name varchar(300)not null
);
и таблица с циклической ссылкой
create table win_folder_dependency(
id_folder_dependency serial primary key not null,
id_folder_father int not null,
id_folder_son int not null,
foreign key(id_folder_father)references win_folder_principal(id_folder_principal),
foreign key(id_folder_son)references win_folder_principal(id_folder_principal)
);
однако я обнаружил очень интересную ситуацию: если я хочу удалить значение из таблицы папа, у которого есть ребенок, а у этого ребенка больше детей, есть ли способ удалить значения из последнего в первое, но также и эти значениябыть удаленным из таблицы Отца?
**WIN_FOLDER_PRINCIPAL**
| Id | Folder_Name|
| 23 | new2 |
| 24 | new3 |
| 13 | new0 |
| 22 | new1 |
| 12 | nFol |
И это значение хранится в Win_Folder_Dependency
**WIN_FOLDER_DEPENDENCY**
| Id_Father | Id_Son |
| 12 | 13 |
| 13 | 22 |
| 22 | 23 |
| 23 | 24 |
, и это запрос, который я использую, чтобы узнатьзначения в таблице зависимостей и принципалов.
SELECT m2.id_folder_principal AS "Principal",
m.folder_name AS "Dependency",
m2.id_folder_principal AS id_principal,
m.id_folder_principal AS id_dependency
FROM ((win_folder_dependency md
JOIN win_folder_principal m ON ((m.id_folder_principal = md.id_folder_son)))
JOIN win_folder_principal m2 ON ((m2.id_folder_principal = md.id_folder_father)))
Если я хочу удалить папку с Id_Principal 13 , мне нужно удалить другие отношения, существующие в Folder_Dependency таблицы, но также удалить значение из Folder_Principal
, есть ли способ добиться этого циклического удаления?