Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー 空間データサポート » 空間データの使用 » 空間データのクイックスタート » 空間カラムの作成 (Sybase Central の場合)

 

SRID カラム制約の追加

SRID 制約を使用すると、空間カラムに格納できる値に制約を加えることができます。インデックスに空間カラムを含めるには、カラムに SRID 制約を課す必要があります。この制約は、CREATE TABLE 文と ALTER TABLE 文を使用して追加できます。

前提条件

テーブルを作成または変更するには、パーミッションが付与されたユーザーである必要があります。

テーブルに空間カラムを追加する場合、テーブルにプライマリキーが定義されていることを確認してください。プライマリキーが定義されていない場合、空間カラムを含んでいるテーブルに対して、更新操作と削除操作がサポートされません。

内容と備考

空間カラムにはプライマリーキー、ユニークインデックス、または一意性制約を入れることはできません。

 ♦ SRID カラム制約の追加
  • 空間カラムの SRID 制約を含んだ CREATE TABLE 文または ALTER TABLE 文を実行します。

    CREATE TABLE Test (
       ID INTEGER PRIMARY KEY,
       Geometry_1 ST_Geometry,
       Geometry_2 ST_Geometry(SRID=4326),
       );

結果

SRID 制約が、テーブルの空間カラムに追加されます。

次の手順

空間カラムをインデックスに含めることができます。

たとえば、次の文を実行して、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);

 参照