ヘッダーをスキップ
Oracle TimesTen In-Memory Database SQLリファレンス・ガイド
リリース7.0
E05176-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

CREATE INDEX

CREATE INDEX文は、表の1つ以上の列にTツリー索引を作成して、新しい索引に名前を割り当てます。Tツリー索引は、インメモリー・アプリケーション向けに設計された索引構造です。Tツリーには、次の特徴があります。

アクセス制御

TimesTenインスタンスでアクセス制御が有効な場合、この文にはDDL権限が必要です。

SQL構文

CREATE [UNIQUE] INDEX [Owner.]IndexName ON

[Owner.]TableName ( { ColumnName [ASC | DESC] }

[, ... ] )

パラメータ

CREATE INDEX文には、次のパラメータがあります。

パラメータ
説明
UNIQUE
索引の重複を禁止します。UNIQUEを指定すると、索引キーの列値の各組合せは、その表の1行にのみ指定できます。UNIQUEを省略すると、値を重複させることができます。一意索引を作成する場合、既存のすべての索引付きの列の値は一意である必要があります。
[Owner.] IndexName
新しい索引に割り当てる名前。表の2つの索引に同じ名前を付けることはできません。所有者を指定する場合、表の所有者と同じ名前を指定する必要があります。
[Owner.] TableName
索引を作成する表を指定します。
ColumnName
索引キーとして使用する列の名前。主索引キーから補助索引キーの順に、最大16列を指定できます。
ASC | DESC
索引の順序を昇順(デフォルト)または降順で指定します。現在、TimesTenではこのパラメータは無視されます。

説明

例5.50

冗長な索引を作成してみます。HRスキーマのREGIONS表により、Region_Idに一意の索引が作成されます。Region_Idに2つ目の一意の索引を作成してみます。警告メッセージが表示されます。ttRedundantIndexCheckをコールして警告メッセージを表示します。

Regions表に対してttIsqlコマンドのINDEXESを発行します。一意のTツリー索引Regionsが表示されます。

Command> INDEXES REGIONS;

Indexes on table SAMPLEUSER.REGIONS:

REGIONS: unique T-tree index on columns:

REGION_ID

(referenced by foreign key index COUNTR_REG_FK on table SAMPLEUSER.COUNTRIES)

1 index found.

1 table found.

表Regionsに一意の索引Iを作成し、Region_Id列に索引を作成してみます。警告メッセージが表示されます。

Command> CREATE UNIQUE INDEX I ON Regions (Region_Id);

Warning 2232: New index I is identical to existing index REGIONS; consider dropping index I

ttRedundantIndexCheckをコールして、この索引に対する警告メッセージを表示します。

Command> CALL ttRedundantIndexCheck ('REGIONS');

< Index SAMPLEUSER.REGIONS.I is identical to index SAMPLEUSER.REGIONS.REGIONS; consider dropping index SAMPLEUSER.REGIONS.I >

1 row found.

例5.51

Redundancy表を作成し、Co11列およびCol2列を定義します。Col1およびCol2に2つのユーザー索引を作成します。2つ目の索引R2を作成しようとするとエラー・メッセージが表示されます。索引R1が作成されます。索引R2は作成されません。

Command> CREATE TABLE Redundancy (Col1 CHAR (30), Col2 VARCHAR2 (30));

Command> CREATE INDEX R1 ON Redundancy (Col1, Col2);

Command> CREATE INDEX R2 ON Redundancy (Col1, Col2);

2231: New index R2 would be identical to existing index R1

The command failed.

Redundancy表に対してttIsqlコマンドのINDEXESを発行し、索引R1のみが作成されていることを表示します。

Command> INDEXES Redundancy;

Indexes on table SAMPLEUSER.REDUNDANCY:

R1: non-unique T-tree index on columns:

COL1

COL2

1 index found.

1 table found.

例5.52

この一意索引によって、部品の番号はすべて一意になります。

CREATE UNIQUE INDEX Purchasing.PartNumIndex

ON Purchasing.Parts (PartNumber);

例5.53

employees1表に、german_indexという名前の言語索引を作成します。2つ以上の言語ソートが必要な場合は、2つ目の言語索引を作成します。

Command> CREATE TABLE employees1 (ID CHARACTER (21),

id2 character (21));

Command> CREATE INDEX german_index ON employees1

  (NLSSORT(id, 'NLS_SORT=GERMAN'));

Command> CREATE INDEX german_index2 ON employees1

  NLSSORT(id2, 'nls_sort=german_ci'));

Command> indexes employees1;

Indexes on table SAMPLEUSER.EMPLOYEES1:

  GERMAN_INDEX: non-unique T-tree index on columns:

    NLSSORT(ID,'NLS_SORT=GERMAN')

  GERMAN_INDEX2: non-unique T-tree index on columns:

    NLSSORT(ID2,'nls_sort=german_ci')

  2 indexes found.

1 table found.

関連項目

DROP INDEX