ビュー定義の再帰文コンポーネント - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

再帰文は、再帰的ビュー定義の再帰的な文の部分です。再帰的に循環して最終的には回答セットを構築することがその目的です。再帰文コンポーネントはシード文コンポーネントとは異なり、常に少なくとも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として定義されている再帰的ビューへの参照があります。ここでは列の名前の出発地、目的地、および深さが参照されています。

単調性を確保するために、再帰文では否定形式と集約形式のすべてが禁止されています(不動点意味論については再帰処理の概念を参照)。