ストアに索引定義を追加するには、CREATE INDEX文を使用します。次のような形式になります。
CREATE INDEX [IF NOT EXISTS] index-name ON table-name (field-name)
マップ・フィールドに索引付けする場合、次のいずれかの場合のように前述の構文を受け入れることができます。
CREATE INDEX [IF NOT EXISTS] index-name ON table-name (KEYOF(field-name))
または
CREATE INDEX [IF NOT EXISTS] index-name ON table-name \ (ELEMENTOF(field-name))
または
CREATE INDEX [IF NOT EXISTS] index-name ON table-name \ (KEYOF(field-name),ELEMENTOF(field-name))
説明:
IF NOT EXISTSはオプションで、これによりその名前の索引がすでに存在している場合にはCREATE INDEX文は無視されます。このフレーズが指定されずに、指定した名前を使用している索引が現在存在している場合には、CREATE INDEX文はエラーで失敗します。
index-nameは作成する索引の名前です。
table-nameは索引付けする表の名前です。
field-nameは索引付けするフィールドの名前です。
KEYOFは、マップに含まれるキーに基づいて索引エントリを作成するキーワードです。
ELEMENTOFは、マップに含まれる値に基づいて索引エントリを作成するキーワードです。
たとえば、表UsersにlastNameという名前のフィールドがある場合、そのフィールドを次の文で索引付けできます。
CREATE INDEX surnameIndex ON Users (lastName)
ストア内のデータ量によっては、索引の作成に時間がかかる可能性があることに注意してください。これは、索引の作成ではOracle NoSQL Databaseがストア内のすべてのデータを調べる必要があるからです。
非スカラー・データ型で索引を使用する説明は、非スカラー・データ型の索引付けを参照してください。