CREATE INDEX utasítás

Új index létrehozása a már létező táblán

Figyelem: Nem Microsoft Jet adatbázisok esetén a Microsoft Jet adatbázis-motor nem támogatja a CREATE INDEX utasítást (az ODBC csatolt táblán létrehozott ál-index kivételével) vagy az adatdefiníciós nyelv (DDL) más utasításait. Ehelyett használjuk a DAO Create metódusát. Bővebb információt a Megjegyzés címszó alatt kaphatunk.

Szintaxis

CREATE [ UNIQUE ] INDEX index

ON tábla (mező1 [ASC|DESC][, mező2 [ASC|DESC], ...])

[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }];

A CREATE INDEX utasítás részei:

Elem Leírás
index A létrehozandó index neve
tábla A tábla neve, amelyet indexelni akarunk.
mező1, mező2.... A indexelendő mező(k) neve(i). Egymezős index esetén írjuk a mező nevét zárójelben a tábla neve után. Többmezős index esetén soroljuk fel azokat a mezőket, amelyekre az index vonatkozik. Csökkenő sorrend létrehozásához használjuk a DESC foglalt szót; egyébként a sorrend növekvő.

Megjegyzés

Különböző rekordok indexelt mezőiben az ismétlődések elkerülése érdekében használjuk a UNIQUE foglalt szót.

A WITH záradékkal az adatok érvényességi szabályait határozhatjuk meg (megadása nem kötelező):

A DISALLOW NULL beállítással tilthatjuk a Null értékű bejegyzéseket az új rekordok mezőibe.

Az IGNORE NULL beállítás esetén a Null értékű mezővel rendelkező rekordok nem fognak az indexben szerepelni.

A PRIMARY beállítással az indexelt mező(ke)t elsődleges kulcsként jelöljük meg. Ez magába foglalja a kulcs egyediségét is, ezért nem kell a UNIQUE foglalt szót használnunk.

A CREATE INDEX utasítással ODBC adatforrásban (mint például az SQL Serverben) a csatolt tábla ál-indexét hozhatjuk létre, ha a tábla még nincs indexelve. Az ál-index létrehozásához nincs szükség engedélyre vagy a távoli kiszolgálóhoz történő hozzáférésre. A távoli adatbázis változatlan marad, figyelmen kívül hagyva az ál-indexet. A csatolt és az alap táblák esetén ugyanazt a szintaktikát használjuk. Az ál-index akkor lehet hasznos, ha indexelni akarunk egy táblát, amely az index hiánya miatt egyébként csak olvasható lenne.

Ha egy- vagy többmezős indexet akarunk a táblához hozzáadni, használhatjuk az ALTER TABLE utasítást. Az ALTER TABLE vagy a CREATE INDEX utasítással létrehozott indexeket az ALTER TABLE vagy a DROP utasítással törölhetjük.

Figyelem: Ha a táblában van már elsődleges kulcs, indexeléskor ne használjuk a PRIMARY foglalt szót, mert hibaüzenetet kapunk.