Leksykon IT › Bazy danych › Zapytanie rekurencyjne

Zapytanie rekurencyjne

Bazy danych Svenska → Zaktualizowano: 2026-10-07

Zapytanie SQL, które odwołuje się do samego siebie, by przejść hierarchię lub graf — realizowane przez WITH RECURSIVE. Standardowy sposób pobierania całych poddrzew lub łańcuchów przodków z tabeli z listą sąsiedztwa (model parent_id).

Mechanizm: rekurencyjne CTE ma dwie części — przypadek bazowy (wiersze startowe, np. wybrany węzeł) i krok rekurencyjny, który łączy się z samym CTE, by pobrać kolejny poziom (np. dzieci). Baza iteruje, aż krok przestanie zwracać wiersze. Zastosowania: „pobierz wszystkie podkategorie”, „cały wątek komentarzy”, „najkrótsza ścieżka w grafie”, „wszyscy przełożeni pracownika”. Obsługują to PostgreSQL, SQL Server, Oracle, MySQL 8+ i SQLite. Pułapki: bez warunku gwarantującego zakończenie graf z cyklami może wpaść w nieskończoną pętlę (część baz ma zabezpieczenie CYCLE); głębokie drzewa potrafią być wolne. To „klej”, który czyni listę sąsiedztwa praktyczną.

← Wróć do leksykonu