„MySQL MariaDB“

MySQL unikalių apribojimų naudojimas

MySQL unikalių apribojimų naudojimas
„MySQL CONSTRAINT“ atmetamas, kad būtų aprašytos taisyklės, leidžiančios arba ribojančios reikšmes laukuose, kuriuose gali būti arba ribojami duomenys, kuriuos galima įvesti į eiles. Nustatant apribojimus siekiama išlaikyti duomenų bazės patikimumą. Vienas iš jų yra UNIKALUS suvaržymas.

UNIKALUS apribojimas garantuoja, kad beveik visi lauko elementai yra atskirti vienas nuo kito. Lauko ar laukų grupės unikalumas ir pirminis raktas turi individualumo garantą. Nepaisant to, kiekvienoje lentelėje galime turėti keletą UNIKALIŲ apribojimų, nors vietoj jų kiekvienai lentelei taikoma viena PRIMARY RAKTŲ riba. Išmokime tai išbandę keletą pavyzdžių.

Unikalus suvaržymas per „Workbench“:

Visų pirma, mes turime sužinoti, kaip pridėti unikalius apribojimus prie lentelės naudojant „MySQL Workbench 8“.0. Atidarykite naujai įdiegtą „MySQL Workbench 8“.0 ir prijunkite jį prie duomenų bazės.

Užklausos srityje turite parašyti žemiau esančią komandą, kad sukurtumėte lentelę „Asmuo“. Šioje lentelėje yra 4 stulpeliai su vienu pagrindiniu raktu. Turime nurodyti vieną unikalų stulpelį. Kaip matote, mes išvalėme stulpelį „Id“ kaip stulpelį „UNIKALUS“:

>> SUKURTI LENTEL Person Asmuo (ID tarp pirminio rakto nėra NULL, pavardės varchar (255) NOT NULL, vardo varchar (255), amžiaus int, UNIQUE (ID));

Dabar lentelė „Asmuo“ sukurta su „UNIKALUS“ stulpeliu „ID“. Lentelę galite rasti skiltyse „Naršyklė“ ir „Schemos“, o išvardyti parinktyje „Lentelės“.

Įterpiant įrašus, kai paliesite mygtuką „Taikyti“, jis peržiūrės įterptus įrašus, kaip parodyta žemiau. Galite pamatyti, kad 3 ir 4 eilutėse yra vienas pasikartojantis įrašas, kurio „ID“ yra tas pats. Norėdami pritaikyti pakeitimus, palieskite mygtuką „Taikyti“.

Žemiau esančiame paveikslėlyje generuojama klaida, kurią dublia stulpelis „ID“, o tai yra vertė „13“.

Ištaisęs įrašą, pritaikęs pakeitimus, jis veiks teisingai.

Unikalus apribojimas per komandų eilutės apvalkalą:

„MySQL“ komandinės eilutės apvalkale UNIQUE raktus pridėsime prie vieno ar kelių stulpelių. Pirmiausia atidarykite komandinę eilutę, kad galėtumėte pamatyti kiekvieną iš toliau pateiktų pavyzdžių. Įveskite slaptažodį, kad galėtumėte naudoti komandos apvalkalą.

01 pavyzdys: Viename stulpelyje

Šioje sintaksėje, kaip ir stulpelių specifikacijose, naudojame UNIKALUMĄ, kuriam norite pritaikyti unikalumo įstatymą. Kai įterpsime arba pakeisime vertę, kuri sukuria dublikatus konkrečiame stulpelyje, „MySQL“ atsisakys atlikti pakeitimą ir taip pat bus suteikta išimtis. Šioje konkrečioje riboje bus stulpelių apribojimas. Ir jūs galite tai naudoti, kad įgyvendintumėte vienos lauko unikalią taisyklę. Čia yra vieno stulpelio UNIQUE rakto sintaksė:

>> CREATE TABLE lentelės_vardas (col duomenų tipas UNIQUE, col duomenų tipas);

Duomenų bazėje sukursime lentelę „tiekėjas“ su trimis stulpeliais. Stulpelis „ID“ apibrėžiamas kaip „UNIKALUS“.

>> SUKURTI LENTELĖS duomenis.tiekėjas (id INT AUTO_INCREMENT NOT NULL UNIQUE, Name VARCHAR (50) NOT NULL, Area VARCHAR (50));

Patikrinę galite pamatyti, kad lentelėje dar nėra įrašų.

>> PASIRINKTI * IŠ duomenų.tiekėjas;

Įterpkime įrašus į lentelę. Pirmasis įrašas į lentelę bus įterptas sklandžiai, kaip parodyta žemiau.

Antrasis įrašas vėl bus įterptas sklandžiai, nes stulpelyje „ID“ nėra jokių tikslių verčių. Kita vertus, ji gauna tą pačią vertę, kurią naudoja pirmoje užklausoje stulpelyje „Plotas“.

Įterpdami trečiąjį įrašą, mes pateikėme pasikartojančią vertę „1“, kaip mes nurodėme pirmajame įterpimo sakinyje. Tai sukels klaidą, kad stulpelis „ID“ gauna pasikartojančią vertę, kaip parodyta žemiau esančiame paveikslėlyje.

Dar kartą tikrindami galite pamatyti, kad lentelėje yra tik pirmųjų dviejų įterpimo sakinių įrašai. Nors nėra įrašo iš trečiojo intarpo sakinio.

>> PASIRINKTI * IŠ duomenų.tiekėjas;

02 pavyzdys: keliuose stulpeliuose

Naudodami šį formatą, po UNIQUE termino, skliausteliuose naudojame kableliais atskirtą stulpelių rinkinį. ColS ir col2 laukų reikšmių sudėtį MySQL naudoja unikalumui nustatyti.

>> CREATE TABLE lentelės_vardas (col1 duomenų tipas, col2 duomenų tipas, UNIQUE (col1, col2));

Duomenų bazėje „duomenys“ kūrėme lentelę „ministras“ su penkiais stulpeliais. Stulpelis „ID“ apibrėžiamas kaip „UNIKALUS“ ir „PAGRINDINIS“. Raktinis žodis „SUSITARIMAS“ naudojamas įvardyti unikalų pagrindinį suvaržymą kaip „uc_add_sal“. „UNIQUE“ raktinis žodis naudojamas apibrėžti UNIQUE apribojimą skliausteliuose nurodytuose stulpeliuose, el.g., Adresas ir „Atlyginimas“. Dabar iš viso turime tris stulpelius, kuriuose yra „UNIKALUS“ apribojimas.

>> SUKURTI LENTELĖS duomenis.ministras (vidurio INT AUTO_INCREMENT PAGRINDINIS RAKTAS NEBŪDA NUOTIKAS UNIKALUS, vardas VARCHAR (50) NOT NULL, adresas VARCHAR (50), Job VARCHAR (50), atlyginimas VARCHAR (50), CONSTRAINT uc_add_sal UNIQUE (adresas, atlyginimas));

Patikrinę lentelę, galite pamatyti, kad lentelė šiuo metu tuščia.

>> PASIRINKTI * IŠ duomenų.ministras;

Įdėkime į jį keletą įrašų. Pirmasis įrašas bus sėkmingai pridėtas prie lentelės, nes tai yra pirmoji eilutė ir nėra eilės, su kuria būtų galima suderinti.

Įveskite kitą unikalų įrašą be jokių pasikartojančių verčių bet kuriame stulpelyje, kaip parodyta žemiau.

Tai neturi įtakos, kai įvedame pasikartojančias stulpelių vertes, kuriose nėra „UNIQUE“ apribojimo. Pažvelkite į žemiau pateiktą užklausą. Ji turi pasikartojančią vertę stulpeliuose „Vardas“ ir „Darbas“. Jis veikia tinkamai, nes šiuose dviejuose stulpeliuose nėra apibrėžta „UNIQUE“ suvaržymo.

Kita vertus, kai įterpiame pasikartojančią vertę, el.g., „13“ ir „Rawalpindi“ sukurs klaidą, kaip parodyta žemiau. Taip yra todėl, kad „13“ ir „Rawalpindi“ buvo nurodyti anksčiau.

Tikrindami lentelėje turime tik tris įrašus, įterptus pirmomis trimis užklausomis.

>> PASIRINKTI * IŠ duomenų.ministras;

Išvada:

Mes grakščiai atlikome visus UNIKALIŲ apribojimų apibrėžimo pavienio ir kelių stulpelių pavyzdžius naudodami „MySQL Workbench 8“.0 ir MySQL komandinės eilutės kliento apvalkalas. Tikimės, kad jums nebus jokių problemų sprendžiant problemas, susijusias su unikaliais klavišais.

10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...
5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...
Mūšis už Wesnothą 1.13.6 Išleista plėtra
Mūšis už Wesnothą 1.13.6 išleistas praėjusį mėnesį, yra šeštasis 1 versijos kūrimo leidimas.13.„x“ serija ir ji teikia daug patobulinimų, ypač vartoto...