再帰文は、再帰的ビュー定義の再帰的な文の部分です。再帰的に循環して最終的には回答セットを構築することがその目的です。再帰文コンポーネントはシード文コンポーネントとは異なり、常に少なくとも1度は再帰的関係を参照します。何度も参照することもあります。
再帰処理の概念で取り上げた例について考えてみましょう。以下の太字で強調されているコードが定義の再帰文です。
CREATE RECURSIVE VIEW reachable_from (source,destination,depth) AS ( SELECT root.source, root.destination, 0 AS depth FROM flights AS root WHERE root.source = 'Paris' UNION ALL SELECT in1.source, out1.destination, in1.depth + 1 FROM reachable_from in1, flights AS out1 WHERE in1.destination = out1.source AND in1.depth <= 100);
見てのとおり、この文のFROM句とWHERE句に、reachable_fromとして定義されている再帰的ビューへの参照があります。ここでは列の名前の出発地、目的地、および深さが参照されています。
単調性を確保するために、再帰文では否定形式と集約形式のすべてが禁止されています(不動点意味論については再帰処理の概念を参照)。