17.10 - 例: 相互再帰 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-171K-JPN
Language
日本語 (日本)

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

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

  • 再帰的ビュー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);