ObjectID とは
ObjectID は、ジオデータベースのテーブル内の行を一意に識別するために使用される NULL ではない整数列です。ArcGIS で、または ArcGIS 外で作成したうえで ArcSDE とジオデータベースに登録したテーブルには、ジオデータベースによって管理されている ObjectID 列が格納されている必要があります。ArcGIS では、ObjectID を使って、選択セットのスクロールと表示やフィーチャに対するクエリの実行などを行います。
ほとんどの ArcGIS Desktop 機能では、一意な ObjectID が要求されるため、直接データベースで作業をする場合は、ObjectID が複製されないよう注意する必要があります。たとえば、1 対多のリレーションシップを持つビューを作成するときには、ObjectID が複製される可能性があります。ObjectID が複製されると、ArcGIS Desktop の機能が正常に動作しなくなります。
適切な ObjectID は 3 つの方法でテーブルに追加できます。
- ジオデータベースが管理する ObjectID 列は、ArcGIS で作成したテーブルに自動的に追加されます。
- ObjectID として使用する列は、sdetable コマンドや sdelayer コマンドでテーブルを ArcSDE に登録するときに指定します。ObjectID には、既存の適切な列を指定することも、新しい ObjectID 列の名前を指定することもできます。新しい列名を指定した場合は、ArcSDE によって、その名前をもつ NULL ではない整数の一意な列がテーブルに追加されます。ObjectID として使用する列を指定するときには、その列を ArcSDE に管理させるか、ユーザ管理にするかについても指定します。メモ:
ジオデータベースには、システム管理の ObjectID が必要です。このため、ジオデータベースへのテーブル登録も行う場合は、管理に ArcSDE を指定して ObjectID を登録してください。そうではなく、ユーザ管理の ObjectID を定義すると、後でジオデータベースにテーブルを登録するときにジオデータベースによって新しい ObjectID 列が追加されます。ArcSDE にテーブルを登録するときに指定した列がこの新しい ObjectID 列に置き換えられます。これによって、ユーザ定義の ObjectID のデータ タイプも ObjectID から long integer に変更されます。
- 適切な列をもたないテーブルをジオデータベースに登録すると、ObjectID の要件を満たすようにジオデータベースによってテーブルに別の列が追加されます。テーブルに ObjectID という名前の列がすでに格納されている場合には、OBJECTID_ という名前の列が追加されます。