SRID 制約を使用すると、空間カラムに格納できる値に制約を加えることができます。インデックスに空間カラムを含めるには、カラムに SRID 制約を課す必要があります。この制約は、CREATE TABLE 文と ALTER TABLE 文を使用して追加できます。
前提条件
テーブルを変更するには、そのテーブルの所有者であるか、そのテーブルに対する ALTER 権限を持っているか、または ALTER ANY TABLE または ALTER ANY OBJECT システム権限を持っていることが必要です。
テーブルに空間カラムを追加する場合、テーブルにプライマリキーが定義されていることを確認してください。プライマリキーが定義されていない場合、空間カラムを含んでいるテーブルに対して、更新操作と削除操作がサポートされません。
内容と備考
空間カラムには、プライマリーキー、ユニークインデックス、一意性制約のいずれも入れることはできません。
空間カラムの SRID 制約を含んだ CREATE TABLE 文または ALTER TABLE 文を実行します。
CREATE TABLE Test (
ID INTEGER PRIMARY KEY,
Geometry_1 ST_Geometry,
Geometry_2 ST_Geometry(SRID=4326),
); |
例
たとえば、次の文を実行して、Geometry_2 カラムに SRID 制約 (SRID=4326) を持つ Test という名前のテーブルを作成します。
CREATE TABLE Test ( ID INTEGER PRIMARY KEY, Geometry_1 ST_Geometry, Geometry_2 ST_Geometry(SRID=4326), ); |
この制約は、このカラムに格納できるのは、SRID 4326 に関連付けられた値のみであることを意味します。
カラム Geometry_1 には制約はなく、任意の SRID に関連付けられた値を格納できます。
Geometry_1 カラムにはインデックスを作成できません。ただし、Geometry_2 カラムにはインデックスを作成できます。
既存の空間カラムを持つテーブルの場合は、ALTER TABLE 文を使用して、空間カラムに SRID 制約を追加できます。たとえば、次のような文を実行して、Test という名前のテーブルの Geometry_1 カラムに制約を追加します。
ALTER TABLE Test MODIFY Geometry_1 ST_Geometry(SRID=4326); |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |