CONSTRAINT záradék
A kényszer (CONSTRAINT) hasonló az indexhez, csak az a különbség, hogy segítségével kapcsolatot teremthetünk egy másik táblával.
A kapcsolat létrehozásához és törléséhez használjuk az ALTER TABLE és CREATE TABLE utasítások CONSTRAINT záradékát. A CONSTRAINT záradéknak két fajtája létezik: egy- vagy többmezős.
Figyelem: A Microsoft Jet adatbázis-motor nem Microsoft Jet adatbázisok esetén nem támogatja a CONSTRAINT utasítást és az adatdefiníciós nyelv (DDL) más utasításait. Ehelyett használjuk a DAO Create metódusait.
Szintaxis
Egymezős:
CONSTRAINT név
{PRIMARY KEY | UNIQUE | NOT NULL | REFERENCES idegen tábla [(idegen mező1, idegen mező2)]} |
Többmezős:
CONSTRAINT név
{PRIMARY KEY (elsődleges1[,elsődleges2 [, ...]]) | UNIQUE (egyedi1[, egyedi2 [, ...]]) | NOT NULL (nemnull1[, nemnull2 [, ...]]) | FOREIGN KEY (hiv1[, hiv2 [, ...]]) REFERENCES idegen_tábla [(idegen_mező1 [, idegen_mező2[, ...]])]} |
A CONSTRAINT záradék részei:
Elem | Leírás |
név | A létrehozandó kapcsolat neve |
elsődleges1, elsődleges2 | Az elsődleges kulcs mező vagy mezők neve |
egyedi1, egyedi2 | Az egyedi kulcs mező vagy mezők neve |
nemnull1, nemnull2 | A nem Null értékű mező vagy mezők neve |
hiv1, hiv2 | Más tábla mezőire vonatkozó idegen kulcs mező vagy mezők neve. |
idegen_tábla | Az idegen tábla neve, amelyben a idegen mező záradékban meghatározott mező vagy mezők találhatók. |
idegen_mező1, idegen_mező2 | Az idegen tábla mezője vagy mezői, amelyre a hiv1, hiv2 záradékban hivatkozunk. Ha a mező, amelyre hivatkozunk az idegen tábla elsődleges kulcsa, ezt a záradékot elhagyhatjuk. |
Megjegyzés
Az ALTER TABLE vagy CREATE TABLE meződefiníció záradékában az egymezős szintaktikát közvetlenül a mező adattípusának meghatározása után használjuk.
A többmezős szintaktikát akkor alkalmazhatjuk, ha a CONSTRAINT foglalt szót az ALTER TABLE vagy a CREATE TABLE utasítás meződefinícióján kívül használjuk.
A CONSTRAINT záradék használatakor a mezőket a következőképpen jelölhetjük meg:
A mezőt egyedi kulcsként a UNIQUE foglalt szóval lehet megjelölni. Ez azt jelenti, hogy a táblában nem lehet két olyan rekord, amelyek ebben a mezőben azonos értékűek. Bármely mezőt vagy mezők listáját kijelölhetjük egyedinek. Ha több mezős Constraint utasításban egyedinek jelölünk egy mezőcsoportot, akkor az indexben csak a mezők értékkombinációjának kell egyedinek lenni, az egyes mezők értékének nem.
A táblában mezőt vagy mezőcsoportot elsődleges kulcsként a PRIMARY KEY foglalt szóval lehet megjelölni. Az elsődleges kulcs minden értékének egyedinek vagy nem Null értékűnek kell lennie, és a táblában csak egy elsődleges kulcs lehet.
Figyelem:
Ha a táblában van már elsődleges kulcs, ne adjuk meg a Constraint PRIMARY KEY záradékát, mert hibaüzenetet kapunk.
A mezőt idegen kulcsként a FOREIGN KEY foglalt szóval lehet megjelölni. Ha az idegen tábla elsődleges kulcsa több mezőt tartalmaz, a többmezős Constraint definíciót kell használnunk. Fel kell sorolnunk az összekapcsolandó mezőket, az idegen tábla nevét - és az előző felsorolás sorrendjének megfelelően - azokat az idegen tábla mezőneveket, amelyekre hivatkozni akarunk. Ha a mező(k), amely(ek)re hivatkozunk, az idegen tábla elsődleges kulcsa, alapértelmezésben nem kell a mezőket külön felsorolnunk, mert az adatbázis-motor az idegen tábla elsődleges kulcsát tekinti a hivatkozási alapnak.