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.