ページの先頭行へ戻る
Symfoware Server V11.0.x SQLリファレンス
Symfoware

3.16 CREATE INDEX文(インデックス定義)

機能

インデックスのDSO定義とインデックスのDSI定義を簡略化してインデックスを定義します。

記述形式

構文の構成

参照項番

権限

一般規則

表名
  • インデックスを作成する表の名前を指定します。

  • DSO定義でPRECEDENCE(1)が指定されたSEQUENTIAL構造の表を指定することはできません。PRECEDENCE(1)が指定されたSEQUENTIAL構造の表にインデックスを定義する場合は、インデックスのDSO定義文およびインデックスのDSI定義文で定義してください。

インデックス名
  • 作成するインデックスの名前を指定します。

  • インデックス名は、システム用の動作環境ファイルでDEFAULT_DSI_NAME=CODEを指定した場合は、36文字以内の先頭が英字で始まる英数字、または18文字以内の日本語文字列を指定します。CODEを指定しない場合は、8文字以内の先頭が英字で始まる英数字、または8文字以内の日本語文字列を指定します。

  • 一時表の場合のインデックス名は、36文字以内の先頭が英字で始まる英数字、または18文字以内の日本語文字列を指定します。

  • インデックス名は、スキーマ内で一意の名前であることが必要です。

キー指定(KEY)
  • キー指定は、インデックスキーを構成する列および列の並びを指定します。キー指定中の列または列の並びの組合せが、表定義で指定した一意性制約に対応する列または列の並びの組合せと一致する場合、一意な値を持つインデックスとして定義されます。これ以外の場合、重複する値を持つインデックスとして定義します。

  • 列名リストは、列名をカンマ(,)で区切って指定します。

  • インデックスキーを構成する列に、データ型が概数型またはBLOB型の列名は指定できません。

  • キー指定で、列の並びが同一のインデックスを定義することはできません。

  • キー指定の指定方法は以下のとおりです。

    • 同じ列名を2回以上指定することはできません。

    • 列名は、表名で指定する実表の列であることが必要です。

    • 指定できる列の数は、最大64個です。

    • インデックスキーを構成する列の大きさは、1000バイト以下であることが必要です。

注釈定義(COMMENT)
  • 注釈は256バイト以内の文字列(日本語記述可能)を指定することができます。

格納領域指定(ON)
  • 格納領域指定は、インデックスの格納先のデータベーススペースを指定します。

    • 指定されたデータベーススペースは、定義済であることが必要です。インデックス定義により指定されたデータベーススペースに、Symfoware/RDBが自動的にインデックスの格納構造を定義します。

      定義される格納構造については、“D.3 格納領域指定時の格納構造”を参照してください。

    • 格納領域指定で指定するデータベーススペースは、関連する表で割り付けたデータベーススペースと同じロググループを使用するものでなければなりません。

    • インデックスを作成する表が一時表の場合、格納領域指定は指定できません。

    • インデックスを作成する表がデフォルトデータベーススペースに定義されている場合、格納領域指定は指定できません。

使用例

スキーマ名S1の表T1にインデックス“IXA”を定義します。

CREATE TABLE S1.T1(C1 INT NOT NULL,
                   C2 INT NOT NULL,
                   C3 INT NOT NULL) ON DBSPACE1;
  
CREATE INDEX S1.T1.IXA KEY(C1) ON DBSPACE2;