Postgresql nehézségek

A korlátozások szabályozzák a táblázatban található erőszakos oszlopokat. Ezeket használják arra, hogy megakadályozzák a helytelen adatok bevitelét az adatbázisba. Ez biztosítja az adatok pontosságát és érvényességét az adatbázisban.

A kényszerek lehetnek oszlop- vagy asztali szintek. Az oszlopszintű korlátozások csak egy oszlopra érvényesek, ahol az asztalszintű korlátozások az egész táblára vonatkoznak. Az oszlop adattípusának meghatározása önmagában korlátozás. Például egy DATE típusú oszlop korlátozza az érvényes dátumok oszlopát.

Miután a gyakran használt korlátozások elérhetők a PostgreSQL-ben.

NINCS NULL kényszer. Garanciákat. hogy az oszlopnak nincs nulla értéke.

EGYEDI KORLÁTOZÁS. Garanciákat. hogy az oszlopban lévő összes érték eltér.

PRIMARY kulcs. Egyértelműen azonosítja az egyes sorokat / rekordokat az adatbázis táblában.

Külföldi kulcs. Korlátozza az adatokat. a többi táblázat oszlopai alapján.

Ellenőrizze a korlátozást. Az ellenőrzési kényszer garantálja. hogy az oszlopban lévő összes érték megfelel bizonyos feltételeknek.

KIZÁRÁSI KORLÁTOZÁS. kizárva a korlátozás garanciáit. hogy ha bármelyik két sort összehasonlítjuk a meghatározott oszlop (ok) vagy kifejezés (ek) vel, a megadott operátor (oka) t használva. nem minden összehasonlítás térül meg TRUE.

NINCS NULL kényszer

Alapértelmezés szerint az oszlop NULL értékeket tartalmazhat. Ha nem szeretné, hogy az oszlop NULL legyen, meg kell határoznia egy ilyen korlátozást az adott oszlopban, jelezve, hogy a NULL-k most nem tartalmaznak oszlopot az oszlophoz. A nem nulla korlátozás mindig oszlopkorlátként íródott.

A NULL nem azonos az adatokkal, inkább ismeretlen adatokat jelenít meg.

Például a következő PostgreSQL utasítás létrehoz egy új vállalati nevű táblázatot, és öt oszlopot ad hozzá, ezek közül három, az azonosító, valamint a név és az életkor, amelyek nem tartalmazzák a NULL értékeket:

Egyedülálló kényszer

Az egyediségkorlát megakadályozza, hogy két rekord ugyanazon értékeket kapjon egy adott oszlopban. A CÉG-táblában például két vagy több azonos korú embert szeretne.

Például a következő PostgreSQL utasítás létrehoz egy új táblát a COMPANY3 néven, és öt oszlopot ad hozzá. Itt az AGE oszlop UNIQUE értékre van állítva, tehát nem lehet két azonos korú rekordja:

PRIMARY KEY Kényszer

A PRIMARY KEY korlátozás egyedileg azonosítja az adatbázis táblában szereplő minden bejegyzést. Több UNIQUE oszlop is lehet, de csak egy elsődleges kulcs a táblában. Az elsődleges kulcsok fontosak az adatbázis táblák fejlesztésében. Az elsődleges kulcsok egyedi azonosítók.

A táblázat sorainak jelölésére használjuk őket. Az elsődleges kulcsok külsõ kulcsokká válnak az asztalok közötti kapcsolatok létrehozásakor. A felügyelet hosszú távú kódolása miatt az elsődleges kulcsok SQLite NULL-ban lehetnek. Más adatbázisok esetében ez nem így van

Az elsődleges kulcs egy mező a táblázatban, amely egyedileg azonosítja az egyes sorokat / rekordokat az adatbázis táblában. Az elsődleges kulcsoknak egyedi értékeket kell tartalmazniuk. Az elsődleges kulcs oszlop nem lehet NULL.

A táblázatban csak egy elsődleges kulcs lehet, amely egy vagy több mezőből állhat. Ha több mezőt használ az elsődleges kulcsként, ezeket összetett kulcsnak nevezik.

Ha a tábla elsődleges kulcsot tartalmaz. minden területen (k). akkor nem lehet két bejegyzés. azonos mező értékével.

Már láttad a fenti példákat, ahol elsődleges kulcsként létrehoztuk a COMAPNY4 táblát azonosítóval:

Külföldi kulcskorlátozás

Idegen kulcskorlátozás határozza meg. hogy az oszlopban (vagy oszlopcsoportban) lévő értékeknek meg kell egyezniük az értékekkel. megjelenik egy másik táblázat egyik sorában. Azt mondjuk, ez támogatja a link-integritást a két kapcsolódó táblázat között. Idegen kulcsok, külföldi korlátozások; vagyis az asztalon kívül. A külsõ kulcsokat néha hivatkozási kulcsnak nevezik.

Például a következő PostgreSQL-kezelő létrehoz egy új táblát a COMPANY5 néven, és öt oszlopot ad hozzá.

Például a következő PostgreSQL utasítás létrehoz egy új osztályt, a Department1-et, amely három oszlopot ad hozzá. Az EMP_ID oszlop idegen kulcs, és hivatkozik a COMPANY6 táblázat mezőazonosítójára.

ellenőrizze a korlátozást

Az ellenőrzési kényszer lehetővé teszi egy feltételnek a rekordban megadott érték ellenőrzését. Ha a feltétel hamis, a rekord sérti a korlátozást, és nem szerepel a táblázatban.

Például a következő PostgreSQL operátor létrehoz egy új táblát a COMPANY5 néven, és öt oszlopot ad hozzá. Itt hozzáadjuk a CHECK-ot a SALARY oszlopokkal, így nem lehet ZERO ZERPLANTS:

KIZÁRÁSI KORLÁTOZÁS

A kizárási korlátok biztosítják, hogy ha bármelyik két karakterláncot összehasonlítjuk a megadott oszlopokkal vagy kifejezésekkel a megadott operátorokkal, akkor ezek közül legalább egy ilyen összehasonlító operátor hamis vagy nulla értéket ad vissza.

Például a következő PostgreSQL operátor létrehoz egy új COMPANY7 nevű táblát, és öt oszlopot ad hozzá. Itt adjuk hozzá az EXCLUDE korlátozásokat:

Itt van az indextípus HASZNÁLATÁÉRT, melyet felépít és használ a végrehajtáshoz.

Meg kell futtatnia a Btree_gist CREATE EXTENSION parancsot; Egyszer az adatbázisba. Ez lehetővé teszi, hogy telepítse a btree_gist kiterjesztést, amely az egyszerű skaláris adattípusokra vonatkozó kivétel határokat határoz meg.

Ahogyan korábban már teljesítettük a korszakot, ugyanaz legyen, lássuk, ha rekordokat helyezünk a táblába:

Az első két INSERT utasítás során a rekord a COMPANY7 táblába kerül. A következő hibaüzenet jelenik meg a harmadik INSERT jóváhagyásához:

A korlátozások eltávolítása:

A korlátozás eltávolításához ismernie kell a nevét. Ha a név ismeretes, könnyen leeshet. Ellenkező esetben meg kell találnia a létrehozott rendszernek a nevét. A psq parancs \ d tbl_name hasznos lehet itt. Általános szintaxis:

Kapcsolódó cikkek