CREATE INDEX

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 11


CREATE INDEX (theTable; fieldsArray; indexType; indexName{; *})

引数説明
theTableテーブルインデックスを作成するためのテーブル
fieldsArray配列ポインタインデックスされるフィールドへのポインタ
indexType整数作成されるインデックスのタイプ:
-1 = キーワード、 0 = デフォルト、
1 = 標準 B-Tree、 3 = クラスタ B-Tree
indexNameText作成するインデックスの名前
**渡されると = 非同期インデックス

説明

CREATE INDEXコマンドを使用して以下のインデックスを作成します。

・1つ以上のフィールドの標準インデックス(複合インデックス) または

・フィールドのキーワードインデックス

fieldsArrayポインタ配列で指定された1つ以上のフィールドを使用して、theTableテーブルのインデックスを作成します。簡単なインデックスを作成する場合、この配列は1行だけ格納します。複合インデックスを作成する場合、この配列は2つ以上の行を格納します (キーワードインデックスの場合は例外) 。複合インデックスでは、インデックスを作成する配列内でのフィールドの順番が重要となります。

indexType引数を使用して、作成されるインデックスのタイプを指定します。"Index type"テーマにある以下の定数のいづれか1つを渡します。

Keywords Index (-1): キーワードタイプのインデックス。キーワードを複合タイプにすることはできません。fieldsArray配列にはひとつだけフィールドを渡します。

Default Index type (0): この場合、4Dはフィールドに応じて最適なインデックスのタイプを設定します (キーワードインデックスを除く) 。

Standard BTree Index (1): 標準 B-Treeタイプのインデックス。この多目的用のインデックスタイプは4Dの以前のバージョンで使用されています。

Cluster BTree Index (3): クラスタを使用するB-Treeタイプのインデックス。このインデックスタイプは、インデックスが少数のキーを持つ場合、つまり同じ値がデータ内で頻繁に生じる場合に最も適しています。

作成するインデックスの名前をindexName引数に渡します。この名前は必須です。空の文字列を渡した場合、エラーが発生します。indexNameインデックスが既に存在する場合、コマンドは何もしません。

任意の* 引数が渡されると、非同期モードでインデックスを実行します。このモードでは、コマンドからの呼び出し後、インデックスが完了しているか、完了していないかに関わらず元のメソッドがその実行を継続します。

ロックされたレコードがある場合、CREATE INDEXコマンドはこれらのレコードをインデックスしません。コマンドはレコードのロックが解除されるのを待ちます。

コマンドを実行している間に問題が発生する場合 (非インデックスフィールド、1つ以上のフィールドでキーワードインデックスを作成する試み等) エラーが発生します。このエラーは、エラー処理メソッドで検知できます。

例題

1. [Customers]テーブルの"Last Name" フィールドと"Telephone" フィールドに標準インデックスをそれぞれ作成。

   ARRAY POINTER(fieldPtrArr;1)
   fieldPtrArr{1}:=->[Customers]LastName
   CREATE INDEX([Customers];fieldPtrArr;Standard BTree Index;"CustLNameIdx")
   fieldPtrArr{1}:=->[Customers]Telephone
   CREATE INDEX([Customers];fieldPtrArr;Standard BTree Index;"CustTelIdx")

2.[Customers]テーブルの"Observations"フィールドにキーワードインデックスを作成。

   ARRAY POINTER(fieldPtrArr;1)
   fieldPtrArr{1}:=->[Customers]Observations
   CREATE INDEX([Customers];fieldPtrArr;Keywords Index;"CustObsIdx")

3. [Customers]テーブルの"City"フィールドと"Zipcode"フィールドに複合インデックスを作成。

   ARRAY POINTER(fieldPtrArr;2)
   fieldPtrArr{1}:=->[Customers]City
   fieldPtrArr{2}:=->[Customers]Zipcode
   CREATE INDEX([Customers];fieldPtrArr;Standard BTree Index;"CityZip")

参照

DELETE INDEX, SET INDEX.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次