PostgreSQL に格納されたジオデータベースのキーセット テーブル

キーセット テーブルは ArcGIS Desktop クライアントが整数、番号、日付、文字列タイプの属性を使用してテーブルを結合するジオデータベース リレーションシップ クエリを実行するときに、選択された行のリストを保持するために使用されます。

PostgreSQL 用 ArcSDE ログ ファイル設定オプション」で説明しているように、ログ ファイル テーブルには選択フィーチャの objectid が格納されます。キーセット テーブルは、objectid 以外の属性による結合に対応するために使用されます。

キーセット テーブルはデータベース クエリのソース選択セットの行の数が 99 を超えるセッション(接続)ごとに 1 つ作成されます。

ArcGIS Desktop のキーセット テーブル

ArcGIS Desktop ではキーセット テーブルを確認できません。ただし、キーセット テーブルを作成し、データを設定することは可能です。そのためには、ArcMap のリレーションシップ クラスに関与するフィーチャクラスで 99 個を超えるレコードを選択した後、属性テーブルを開き、オプション メニューの関連テーブル リストを使用して関連テーブルを取得します。また、編集セッションの開始時にもキーセット テーブルが作成されます。

PostgreSQL データベースのキーセット テーブル

キーセット テーブルは、次のどちらかの状態になるまでジオデータベースに作成されません。

どちらかの状態が発生した場合、キーセット テーブルはグローバル一時テーブルとして作成されます。1 つ目のケースでは、キーセット テーブルが作成され、レコードが追加されます。2 つ目のケースでは、キーセット テーブルは作成されるだけで、条件を満たす選択セットが作成されるまで空のままになります。

キーセット テーブルの名前には、キーセット テーブルの作成に至ったセッションのプロセス ID 番号が含まれています。形式は次のとおりです。

keyset_<process_id>

キーセット テーブルは選択セットのキーセット ID 番号とフィーチャクラス間のリレーションシップのベースとなるフィールドの値を格納します。

キーセット テーブルは、一時テーブルなので、ユーザがデータベースへの接続を終了したときに削除されます。ただし、このテーブルを格納するために PostgreSQL によって作成された一時スキーマは残ります。このスキーマには pg_temp_3 などの名前が付けられます。

次に、LATERALS テーブルと CONTRACTORS テーブル間で選択を行うためのキーセット テーブルを示します。この場合、LONG_VAL フィールドには、LATERALS テーブルと CONTRACTORS テーブルのリレーションシップ クラスのベースとなる CONTRACTOR_ID フィールドの値が含まれます。

PostgreSQL のキーセット テーブルとそれに関連するビジネス テーブル

keyset_<process_id>

次に、PostgreSQL のキーセット テーブルの定義を示します。

フィールド名

フィールド タイプ

説明

NULL?

keyset_id

integer

キーセット選択の ID。

NOT NULL

long_val

integer

リレーションシップ クラスのベースとなるフィールドが数値フィールドの場合、そのフィールドの値。

str_val

varchar(256)

リレーションシップ クラスのベースとなるフィールドが文字列フィールドの場合、そのフィールドの値。

dbl_val

double

リレーションシップ クラスのベースとなるフィールドが倍精度数値フィールドの場合、そのフィールドの値。

date_val

timestamp without time zone

リレーションシップ クラスのベースとなるフィールドが日付フィールドの場合、そのフィールドの値。

XML ワークスペース ドキュメントのキーセット テーブル

キーセット テーブルは一時的なテーブルのため、XML ドキュメントに格納することはできません。

関連項目


3/6/2012