MySQL MariaDB

A MySQL egyedi kényszerek használata

A MySQL egyedi kényszerek használata
A MySQL CONSTRAINT felszámolásra kerül azoknak a szabályoknak a leírására, amelyek engedélyezik vagy korlátozzák az értékeket azokban a mezőkben, amelyek megtarthatják vagy korlátozhatják a sorokba bevihető adatokat. A korlátozások bevezetésének célja az adatbázis hitelességének fenntartása. Az egyik az EGYETLEN kényszer.

Az UNIQUE korlátozás garantálja, hogy egy mező szinte minden eleme megkülönböztethető egymástól. Egy mező vagy mezőcsoport esetében az UNIQUE és a PRIMARY KEY korlátok kölcsönösen biztosítják az egyéniséget. Mindazonáltal több UNIQUE korlátozás szerepelhet az egyes táblákban, bár ezek helyett egy-egy PRIMARY KEY korlát van érvényben. Tanuljuk meg néhány példával.

Egyedi kényszer a Workbenchen keresztül:

Először meg kell tanulnunk, hogyan adhatunk egyedi korlátozásokat a táblázathoz a MySQL Workbench 8 használata közben.0. Nyissa meg az újonnan telepített MySQL Workbench 8 szoftvert.0 és csatlakoztassa az adatbázishoz.

A lekérdezési területen az alábbi parancsot kell megírnia a "Személy" tábla létrehozásához. Ez a táblázat 4 oszlopot tartalmaz, egy elsődleges kulccsal. Meg kell adnunk egy egyedi oszlopot. Amint láthatja, töröltük az „Id” oszlopot „UNIQUE” oszlopként:

>> CREATE TABLE Person (ID int PRIMARY KEY NOT NULL, LastName varchar (255) NOT NULL, FirstName varchar (255), Age int, UNIQUE (ID));

Most elkészült a „Személy” tábla az „UNIQUE” oszlopával, az „ID”. A táblázatot a „Navigátor” és a „Sémák” alatt találja, miközben a „Táblázatok” opcióban szerepel.

A rekordok beszúrása közben, amikor megérinti az „Apply” gombot, az alábbiakban bemutatott módon ellenőrzi a beillesztett rekordokat. Láthatja, hogy van egy duplikált rekordunk a 3. és 4. sorban, ugyanazzal az azonosítóval. Érintse meg az „Alkalmaz” gombot a változtatások alkalmazásához.

Az alábbi képen hibát generál, amelyet az „ID” oszlop megduplázott, ami a „13” érték.

A rekord kijavítása után, amikor végrehajtja a módosításokat, az megfelelően fog működni.

Egyedi kényszer a parancssori héjon keresztül:

A MySQL parancssori héjban UNIQUE kulcsokat adunk hozzá egy vagy több oszlophoz. Először nyissa meg a parancssort, hogy bepillanthasson mindegyikbe az alábbi példákban. Írja be jelszavát a parancshéj használatához.

01. példa: Egy oszlopon

Ebben a szintaxisban, az oszlop-specifikációhoz hasonlóan, az UNIQUE kifejezést használjuk, amelyet az egyediségi törvény alkalmazásához szeretne használni. Miután beszúrunk vagy módosítunk egy olyan értéket, amely duplikátumokat hoz létre az adott oszlopban, a MySQL elutasítja a módosítást, és kivételt is ad. Ebben a különös korlátban oszlopkorlátozás lesz. És ezt felhasználhatja az egyik mező egyedi szabályának végrehajtására is. Itt található az egyoszlopos UNIQUE kulcs szintaxisa:

>> CREATE TABLE tábla_neve (oszlop adattípus UNIQUE, oszlop adattípus);

Hozzunk létre egy „szállító” táblázatot az „adatok” adatbázisban, benne három oszloppal. Az „ID” oszlop meghatározása „UNIQUE”.

>> TABLE adatok létrehozása.szállító (id INT AUTO_INCREMENT NOT NULL UNIQUE, Name VARCHAR (50) NOT NULL, Area VARCHAR (50));

Ellenőrzéskor láthatja, hogy a táblázatnak még nincsenek rekordjai.

>> SELECT * FROM adatok.támogató;

Helyezzük be a rekordokat a táblázatba. Az első rekordot simán beillesztjük a táblázatba, az alábbiak szerint.

A második rekordot ismét simán beillesztjük, mivel az „ID” oszlopban nincsenek ismétlődő értékek. Másrészt ugyanazt az értéket veszi fel, mint amit a „Terület” oszlop első lekérdezésében használ.

A harmadik rekord beillesztésekor megadtuk az „1” duplikát értéket, amint azt az első beszúrási utasításban megadtuk. Hibát generál, hogy az „ID” oszlop duplikált értéket kap, amint az az alábbi képen látható.

Az újbóli ellenőrzés során láthatja, hogy a táblázat csak az első két beszúrási utasítás rekordját tartalmazza. Bár a harmadik beszúrási utasításból nincs rekord.

>> SELECT * FROM adatok.támogató;

02. példa: Több oszlopon

Ezzel a formátummal az UNIQUE kifejezés után vesszővel elválasztott oszlopkészletet alkalmazunk zárójelben. A col1 és col2 mező értékeinek összetételét a MySQL használja az egyediség meghatározására.

>> CREATE TABLE tábla_neve (col1 adattípus, col2 adattípus, UNIQUE (col1, col2));

Öt oszloppal létrehoztunk egy „minister” táblázatot az „adatok” adatbázisban. Az „ID” oszlop meghatározása: „UNIQUE” és „PRIMARY”. A „KORLÁTOZÁS” kulcsszóval egyedi kulcsfontosságú megnevezést „uc_add_sal” néven lehet használni. Az „UNIQUE” kulcsszó meghatározza az UNIQUE kényszert a zárójelben megadott oszlopokon, e.g., Cím és „Fizetés”. Most összesen három oszlop van, amelyekre „UNIQUE” korlátozás vonatkozik.

>> TABLE adatok létrehozása.miniszter (Mid INT AUTO_INCREMENT PRIMARY KEY NOT NULL UNIQUE, Name VARCHAR (50) NOT NULL, Address VARCHAR (50), Job VARCHAR (50), Fizetés VARCHAR (50), CONSTRAINT uc_add_sal UNIQUE (cím, fizetés));

Az asztal ellenőrzésekor láthatja, hogy a táblázat most üres.

>> SELECT * FROM adatok.miniszter;

Helyezzünk bele néhány rekordot. Az első rekord sikeresen bekerül a táblázatba, mert ez az első sor, és nincs egyezendő sor.

Adjon meg egy másik egyedi rekordot, duplikált értékek nélkül bármely oszlopban, az alábbiak szerint.

Nem befolyásolja, hogy mikor adjuk meg azoknak az oszlopoknak a duplikált értékeit, amelyeken nincs „UNIQUE” korlátozás. Vessen egy pillantást az alábbi lekérdezésre. Ismétlődő értéke van a „Név” és a „Munka” oszlopokban. Ez azért működik megfelelően, mert e két oszlopban nincs meghatározva „UNIQUE” korlátozás.

Másrészt, amikor beszúrjuk a duplikált értéket, pl.g., A „13” és a „Rawalpindi” hibát generál, amint az alább látható. Ennek oka, hogy a „13” -t és a „Rawalpindi” -t korábban meghatározták.

Ellenőrzéskor csak három rekord van a táblázatban, az első három lekérdezéssel beillesztve.

>> SELECT * FROM adatok.miniszter;

Következtetés:

A MySQL Workbench 8 használata során kecsesen elvégeztük az UNIQUE korlátozások definiálását az egy és több oszlopban.0 és MySQL parancssori klienshéj. Remélhetőleg nem fog problémát okozni az UNIQUE kulcsokkal kapcsolatos problémák megoldása közben.

HD Remastered Games for Linux, amelyeknek soha nem volt korábban Linux kiadásuk
Számos játékfejlesztő és kiadó a régi játékok HD remasterjével áll elő a franchise élettartamának meghosszabbítása érdekében. Kérjük, hogy a rajongók ...
Az AutoKey használata a Linux játékok automatizálásához
Az AutoKey egy asztali automatizáló segédprogram Linux és X11 rendszerekhez, Python 3, GTK és Qt programozással. A parancsfájlok és a MACRO funkcióina...
Az FPS-számláló megjelenítése a Linux-játékokban
A Linux játék komoly lendületet kapott, amikor a Valve 2012-ben bejelentette a Linux támogatását a Steam kliensnek és játékaiknak. Azóta sok AAA és in...