Witam mam za zadanie napisać skrypt update w 1 zapytaniu który ustawi w poszczególnych powiązanych ze sobą tabel softdel na false.
Napisałem takie coś w postgresql i działa super jednak nie dam rady odpalić w oracle jako że nie jestem jego znawcą :/
Struktura tabel
pierwsza tabela menu:
Id number PK
parent_id number FK to menu.Id
title character varying(250)
softdel boolean default false
2 tabela page:
id as PK
menu_id as FK to menu.id
page_id as FK to page.id
softdel boolean default false
3 tabela article:
id as PK and FK to page.id
softdel boolean default set to false
4 tabela article_lang
partial_id as PK
id as FK to article.id
language character
softdel boolean default set to false
with recursive menu_tree (id, parent_id) as ( //rekurencyjne znajdowanie sub menu
select id, parent_id
from menu
where id = 2
union all
select c.id, c.parent_id
from menu c
join menu_tree p on p.id = c.parent_id
)
, deleted_menus (menu_id) as (
update menu
set softdel = true
where id in (select id from menu_tree)
returning menu.id
),
deleted_pages (page_id) as (
update page
set softdel = true
where menu_id in (select menu_id from deleted_menus)
returning page.id
),
deleted_articles (article_id) as (
update article
set softdel = true
where page_id in (select page_id from deleted_pages)
)
update article_lang
set softdel = true
where id in (select article_id from deleted_articles);
Jak mogę coś takiego napisać w oracle ?