CATALOG_FKS (非推奨)¶
注釈
このストアドプロシージャは非推奨であり、Denodo Platform の次のメジャーバージョンでは削除される可能性があります。このプロシージャの代わりに GET_FOREIGN_KEYS プロシージャを使用してください。「GET_FOREIGN_KEYS」は、接続しているデータベースだけではなく、任意のデータベースを検索して同じ情報を返すことができます。
非推奨のすべての機能のリストは、「 Denodo Platform で廃止された機能 」を参照してください。
説明
ストアドプロシージャ CATALOG_FKS
は、接続しているデータベースの 1 つまたはすべてのビューの外部キーを構成するフィールドのリストを返します。
外部キーは、2 つのビューのデータ間のリンクを確立するために使用される 1 つまたは一連のフィールドです。外部キー参照では、あるビューのプライマリキー値を保持しているフィールドは、別のテーブルの 1 つまたは一連の列によって参照されます。
Virtual DataPort で外部キー制約を作成するには、2 つのビュー間のアソシエーションを作成し、それを参照制約として指定する必要があります。この方法については、管理ガイドの「 アソシエーション 」のセクションで説明しています。
構文
CATALOG_FKS (
input_view_name : text
)
input_view_name
(オプション): 外部キーを構成するフィールドのリストの取得対象となるビューの名前。このビューのデータベースに接続している必要があります。
このプロシージャは、外部キーを構成するフィールドごとに 1 つの行を返します。出力スキーマには以下のフィールドがあります。
pkdatabase_name
: 外部キー関係の他方の側 (アソシエーションの「プリンシパル」側) のビューのデータベース。pkview_name
: 外部キー関係の他方の側 (アソシエーションの「プリンシパル」側) のビュー。pkcolumn_name
: 外部キー関係の他方の側 (アソシエーションの「プリンシパル」側) のビューの、プライマリキーのフィールド名。fkdatabase_name
: 外部キーを持つビューのデータベース。これは常に接続しているデータベースです。fkview_name
: 外部キーを持つビュー。fkcolumn_name
: 外部キーのフィールドの名前。fk_name
: 制約の名前。これはアソシエーションの名前です。pk_name
: プライマリキーの名前。これは外部キー関係の他方の側のビューの名前に「_pk」を付けたものです。database_name
: アソシエーションを保持するデータベースの名前。アソシエーションは、アソシエーションのビューとは異なるデータベースに格納できます。
必要な権限
このプロシージャは、ユーザーが Metadata 権限を持っているビューに関する情報のみを返します。
例
以下の項目を定義したとします。
order_details
ビュー: このビューのプライマリキーは、order_id
フィールドおよびorder_line_id
フィールドで構成されています。以下を実行したとします。order
ビュー: このビューのプライマリキーフィールドは、OrderId
です。以下のスクリーンショットのような、これらのビュー間のアソシエーション :

参照制約であるアソシエーションのみ (スクリーンショットの上部のボックスを参照) が、外部キー制約と見なされます。
このスクリーンショットでは、
orders
がアソシエーションのプリンシパル側で、order_details
が依存側です。これは、すべての注文詳細は注文にリンクされる必要があるためです。
order
エンドポイントの多重度は 1 です。これは、order_details
の各行が注文の 1 つの行のみにリンクされることを意味しています。
order_details
エンドポイントの多重度は + です。これは、order
の各行がorder_details
の 1 つまたは複数の行にリンクされることを意味しています。
以下のクエリを実行した場合、
SELECT pkdatabase_name, pkview_name, pkcolumn_name, fkdatabase_name, fkview_name
, fkcolumn_name, fk_name, pk_name, database_name
FROM CATALOG_FKS()
WHERE input_view_name = 'order_details';
結果は以下のようになります。
pkdatabase_na me |
pkview_name |
pkcolumn_name |
fkdatabase_na me |
fkview_name |
---|---|---|---|---|
admin |
orders |
OrderID |
admin |
order_details |
fkcolumn_name |
fk_name |
pk_name |
database_name |
---|---|---|---|
OrderID |
order_details_fk |
orders_pk |
admin |
(見やすくするために、列は 2 つのテーブルに表示されています)