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.