既存のテーブルに新しいインデックスを作成します。
注: Microsoft Access 以外のデータベース の場合、Microsoft Access データベース エンジンでは、CREATE INDEX (ODBC リンク テーブルで擬似インデックスを作成する場合を除く) やデータ定義言語ステートメントを使用できません。 代わりに DAO の Create メソッドを使用してください。 詳細については、「解説」セクションを参照してください。
構文
CREATE [ UNIQUE ] INDEX index
ON table (field [ASC|DESC][, field [ASC|DESC], ...])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]
CREATE INDEX ステートメントには、次の指定項目があります。
引数 |
説明 |
index |
作成されるインデックスの名前です。 |
table |
インデックスを含む既存のテーブルの名前です。 |
field |
インデックスを作成するフィールドの名前。 単一フィールド インデックスを作成するには、テーブル名の後にフィールド名をかっこで囲んで一覧表示します。 複数フィールド インデックスを作成するには、インデックスに含める各フィールドの名前を一覧表示します。 降順インデックスを作成するには、DESC 予約語を使用します。それ以外の場合、インデックスは昇順であると見なされます。 |
解説
異なるレコードのインデックス付きフィールドで値の重複を禁止するには、UNIQUE 予約語を使用します。
オプションの WITH 句では、データ入力規則を強制できます。 次の操作を行うことができます。
-
DISALLOW NULL オプションを使用して、新しいレコードのインデックス付きフィールドの Null エントリを禁止します。
-
IGNORE NULL オプションを使用して、インデックス付きフィールドに Null 値を持つレコードがインデックスに含まれないようにします。
-
PRIMARY 予約語を使用して、インデックス付きフィールドを主キーとして指定します。 これはキーが固有であることを暗黙に示しているため、UNIQUE 予約語を省略することができます。
CREATE INDEX を使用すると、まだインデックスを持たない microsoft® SQL Server などの ODBC データ ソース内の リンク テーブル ™ に擬似インデックスを作成できます。 擬似インデックスを作成するためにリモート サーバーへのアクセス許可やアクセス権は必要ありません。また、リモート データベースは擬似インデックスを認識せず、影響を受けません。 リンク テーブルとネイティブ テーブルの両方に同じ構文を使用します。 通常は読み取り専用となるテーブルに擬似インデックスを作成すると、特に便利です。
また、ALTER TABLE ステートメントを使用して、単一フィールドまたは複数フィールドのインデックスをテーブルに追加したり、ALTER TABLE ステートメントまたは DROP ステートメントを使用して、ALTER TABLE や CREATE INDEX で作成されたインデックスを削除したりすることもできます。
注: 主キーが既にあるテーブルに新しいインデックスを作成する場合、PRIMARY 予約語を使用しないでください。使用すると、エラーが発生します。