شرح صفوف ومحتوى الفقرة
عندما يشير التعبير الجدولي إلى اسمه الذاتي داخل تعريفه لتوليد بيانات تكرارية، يجب إضافة الكلمة المفتاحية RECURSIVE لتصبح الصيغة WITH RECURSIVE cte_name AS (...). ويتكون كل استعلام عودي من جزأين يربطهما UNION ALL:
- 1. جملة الأساس (Anchor Member): استعلام
SELECTغير عودي يُنفذ مرة واحدة في البداية لتحديد نقطة الانطلاق (الصف الجذر). - 2. الجملة العودية (Recursive Member): استعلام
SELECTيستدعي اسمcte_nameنفسه لتوليد الدفعة التالية من الصفوف، ويتكرر حتى ترجع الدورة صفراً من الصفوف الجديدة (شرط التوقف).
SQL
-- Generate an integer sequence from 1 to 5 using WITH RECURSIVE
WITH RECURSIVE number_series AS (
SELECT 1 AS seq_num
UNION ALL
SELECT seq_num + 1
FROM number_series
WHERE seq_num < 5
)
SELECT seq_num FROM number_series;