4D v16.3

CREATE INDEX

ホーム

 
4D v16.3
CREATE INDEX

CREATE INDEX 


 

CREATE INDEX ( aTable ; fieldsArray ; indexType ; indexName {; *} ) 
引数   説明
aTable  テーブル in インデックスを作成するためのテーブル
fieldsArray  ポインター配列 in インデックスされるフィールドへのポインタ
indexType  倍長整数 in 作成されるインデックスのタイプ: -1 = キーワード、 0 = デフォルト、 1 = 標準 B-Tree、 3 = クラスタ B-Tree
indexName  テキスト in 作成するインデックスの名前
演算子 in 渡されると = 非同期インデックス

説明   

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

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

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

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

定数 コメント
Cluster BTree index 倍長整数 3 クラスタを使用するB-Treeタイプのインデックス。このインデックスタイプは、インデックスが少数のキーを持つ場合、つまり同じ値がデータ内で頻繁に生じる場合に最も適しています。
Default index type 倍長整数 0 4Dはフィールドに応じて最適なインデックスのタイプを設定します (キーワードインデックスを除く) 。
Keywords index 倍長整数 -1 フィールドの内容を単語に分割してインデックス化します。このタイプのインデックスはテキスト、文字、ピクチャー型で使用できます。警告: キーワードを複合タイプにすることはできません。
Standard BTree index 倍長整数 1 標準 B-Treeタイプのインデックス。この多目的用のインデックスタイプは4Dの以前のバージョンで使用されています。

注: テキスト型のフィールドに設定されたBツリーインデックスは最大で最初の1024文字をインデックス化します。この場合、1024文字以上を含む文字列の検索結果は正しくなりません。

作成するインデックスの名前をindexName引数に渡すことができます。インデックスの命名は、複数の異なるタイプのインデックスを同じフィールドに割り当て、それを個々にDELETE INDEXコマンドで削除する場合に必要となります。indexNameインデックスが既に存在する場合、コマンドは何もしません。

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

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

コマンドを実行している間に問題が発生する場合 (非インデックスフィールド、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")

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

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

[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
RESUME INDEXES
SET INDEX

 
プロパティ 

プロダクト: 4D
テーマ: ストラクチャアクセス
番号: 966

This command can be run in preemptive processes

 
履歴 

初出: 4D v11 SQL

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)