例: 相互再帰 - Teradata Database - Teradata Vantage NewSQL Engine - 例: 相互再帰、CREATE REPLACE RECURSIVE VIEW文

Teradata Vantage™ SQLデータ定義言語 構文規則および例

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/wkf1512081455740.ditamap
dita:ditavalPath
ja-JP/wkf1512081455740.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

この例は相互再帰処理を示していますが、これは再帰的ビュー定義ではサポートされていません。

相互再帰処理は次の両方が当てはまるときに生じます。

  • 再帰的ビューAが直接的または間接的に再帰的ビューBを呼び出す。
  • 再帰的ビューBが直接的または間接的に再帰的ビューAを呼び出す。

ここで示されている2つの相互再帰的ビュー定義では、oddという名前のビューがevenという名前のビューを参照し、その逆の参照も行なわれています。

    CREATE RECURSIVE VIEW even (n) AS (
      SELECT * 
      FROM (SELECT 0) AS a(i)
    UNION ALL
      SELECT m + 1
      FROM odd);
    CREATE RECURSIVE VIEW odd (m) AS (
      SELECT *
      FROM (SELECT 1) AS a(i)
    UNION ALL
      SELECT n + 1
      FROM even);