CATALOG_FKS¶
注釈
このストアドプロシージャは非推奨であり、Denodo Platform の次のメジャーバージョンでは削除される可能性があります。このプロシージャの代わりに GET_FOREIGN_KEYS プロシージャを使用してください。「GET_FOREIGN_KEYS」は、接続しているデータベースだけではなく、任意のデータベースを検索して同じ情報を返すことができます。
非推奨のすべての機能のリストは、「 Denodo Platform 8.0 で非推奨となった機能 」を参照してください。
説明
ストアドプロシージャ 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 つのテーブルに表示されています)
