Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 文 » SQL 文 (A ~ D)

 

CREATE TEXT INDEX 文

テキスト・インデックスを作成します。

構文
CREATE TEXT INDEX text-index-name 
ON [ owner.]table-name( column-name, ... ) 
 [ IN dbspace-name ]
 [ CONFIGURATION [ owner.]text-configuration-name ]
 [ { IMMEDIATE REFRESH 
      | MANUAL REFRESH 
      | AUTO REFRESH [ EVERY integer { MINUTES | HOURS } ] ]
    }
パラメータ
  • ON 句   この句は、テキスト・インデックスを構築するテーブルとカラムを指定するときに使用します。

  • IN 句   この句は、テキスト・インデックスが格納される DB 領域を指定するときに使用します。この句が指定されていない場合、テキスト・インデックスは default_dbspace オプションで指定された DB 領域に作成されます。

  • CONFIGURATION 句   この句は、テキスト・インデックスの作成時に使用するテキスト設定オブジェクトを指定するときに使用します。この句が指定されておらず、インデックスのカラムのいずれかが NCHAR の場合は、default_nchar テキスト設定オブジェクトが使用されます。それ以外の場合は、default_char テキスト設定オブジェクトが使用されます。

  • REFRESH 句   この句は、テキスト・インデックスの再表示タイプを指定するときに使用します。REFRESH 句を指定しない場合、デフォルトとして IMMEDIATE REFRESH が使用されます。次に、指定できる再表示タイプを示します。

    • IMMEDIATE REFRESH   IMMEDIATE REFRESH は、基本となるテーブルの変更によってテキスト・インデックスのデータが影響を受けるたびにテキスト・インデックスを再表示する場合に指定します。

    • AUTO REFRESH   この句は、内部サーバ・イベントを使用して自動的にマテリアライズド・ビューをリフレッシュするときに使用します。EVERY 句は、再表示間隔を分または時間単位で指定するときに使用します。間隔情報を指定しないで AUTO REFRESH を指定した場合、データベース・サーバは 60 分ごとにテキスト・インデックスを再表示します。sa_text_index_stats システム・プロシージャから返された pending_size value が、最後の再表示時にテキスト・インデックス・サイズの 20% を超えると、AUTO REFRESH 句で指定された時間の前にテキスト・インデックスが再表示される場合があります。1 分ごとに内部イベントが実行され、AUTO REFRESH の全テキスト・インデックスに対してこの条件がチェックされます。

    • MANUAL REFRESH   この句は、テキスト・インデックスが手動で再表示されるように指定するときに使用します。

    再表示タイプの詳細については、テキスト・インデックスの再表示タイプを参照してください。

備考

テキスト・インデックスは、ビュー、マテリアライズド・ビュー、またはテンポラリ・テーブルには作成できません。

IMMEDIATE REFRESH のテキスト・インデックスは、作成時に移植され、この初期再表示中に、テーブルに排他ロックがかけられます。IMMEDIATE REFRESH のテキスト・インデックスは、スナップショット・アイソレーションを使用するクエリを完全にサポートします。

MANUAL と AUTO REFRESH のテキスト・インデックスは、作成後に初期化 (再表示) されます。

AUTO REFRESH のテキスト・インデックスの再表示では、独立性レベル 0 を使用してテーブルがスキャンされます。isolation_level オプション [データベース] [互換性]を参照してください。

テキスト・インデックスの作成後に、その定義を IMMEDIATE REFRESH に変更したり、IMMEDIATE REFRESH から変更したりできません。いずれかの変更が必要な場合は、テキスト・インデックスを削除して再度作成する必要があります。

REFRESH TEXT INDEX 文を使用して、AUTO REFRESH テキスト・インデックスを手動で再表示することを選択できます。REFRESH TEXT INDEX 文を参照してください。

テキスト・インデックスとそれらが参照するテキスト設定オブジェクトを表示する方法については、データベースのテキスト・インデックスの表示を参照してください。

パーミッション

基本となるテーブルの所有者であるか、DBA 権限または REFERENCES パーミッションが必要です。

文またはトランザクションのスナップショットを使用する、WITH HOLD 句を使用して開かれたカーソルがある場合、この文は実行できません。スナップショット・アイソレーションを参照してください。

関連する動作

オートコミット。

参照
標準と互換性
  • SQL/2003   ベンダ拡張。

次の例は、デモ・データベースの MarketingInformation テーブルの Description カラムについてテキスト・インデックス myTxtIdx を作成します。MarketingTextConfig テキスト設定オブジェクトが使用され、再表示間隔は 24 時間ごとに設定されます。

CREATE TEXT INDEX myTxtIdx ON MarketingInformation ( Description ) 
   CONFIGURATION MarketingTextConfig
   AUTO REFRESH EVERY 24 HOURS;