Den unike begrensningen garanterer at nesten alle elementer i et felt er forskjellige fra hverandre. For et felt eller en gruppe felt, har de unike og primære nøkkelgrensene gjensidig en forsikring om individualitet. Vi kan likevel ha flere unike begrensninger i hver tabell, selv om en primær nøkkelgrense for hver tabell i stedet. La oss lære det ved å prøve noen eksempler.
Unik begrensning via arbeidsbenk:
For det første må vi lære om hvordan vi kan legge til unike begrensninger på bordet mens vi bruker MySQL Workbench 8.0. Åpne din nylig installerte MySQL Workbench 8.0 og koble den til databasen.
I spørringsområdet må du skrive kommandoen nedenfor for å opprette en tabell 'person'. Denne tabellen har 4 kolonner med en primærnøkkel. Vi må spesifisere en unik kolonne. Som du ser, har vi ryddet kolonnen 'ID' som den 'unike' kolonnen:
>> Opprett tabellperson (id int primær nøkkel ikke null, etternavn varchar (255) ikke null, første navn varchar (255), alder int, unik (id));
Nå er tabellen "person" opprettet med sin "unike" kolonne "ID". Du kan finne tabellen under "Navigator" og "skjemaer" mens du er oppført i alternativet "Tabeller".
Når du setter inn postene, vil den gjennomgå de innsatte postene som vist nedenfor når du trykker på "Bruk" -knappen. Du kan se at vi har en duplisert post på linjer 3, og 4 som har samme "ID". Trykk på "Bruk" -knappen for å bruke endringer.
I bildet nedenfor genererer det en feil som kolonnen “ID” har duplisert, som er verdien “13”.
Etter å ha korrigert posten, når du bruker endringene, vil den fungere riktig.
Unik begrensning via kommandolinjeskall:
I MySQL-kommandolinjeskallet vil vi legge til unike nøkler til en eller flere kolonner. Åpne kommandolinjen først for å få et glimt av hvert eksempler nedenfor. Skriv inn passordet ditt for å bruke kommandoskallet.
Eksempel 01: på enkeltkolonne
Innenfor denne syntaksen, som i kolonnespesifikasjon, bruker vi det unike uttrykket du ønsker å anvende unikhetsloven. Når vi har satt inn eller endrer en verdi som oppretter duplikater i den aktuelle kolonnen, vil modifiseringen bli nektet av MySQL, og et unntak vil også bli gitt. Det vil være en kolonnebegrensning i denne spesielle grensen. Og du kan bruke det til å implementere ett felts unike regel også. Her er en syntaks for en unik nøkkel med en kolonne:
>> Opprett tabell Tabell_navn (Col Datatype unik, Col Datatype);
La oss opprette en tabell "leverandør" i databasen "Data" med tre kolonner i den. Kolonnen "ID" er definert som "unik".
>> Opprett tabelldata.leverandør (id int auto_increment ikke null unik, navn varchar (50) ikke null, område varchar (50));
Når du sjekker, kan du se at tabellen ikke har noen poster ennå.
>> Velg * fra data.leverandør;
La oss sette inn postene i tabellen. Den første posten blir satt inn i bordet jevnt, som vist nedenfor.
Den andre posten vil bli satt inn jevnt igjen, siden den ikke har noen duplikatverdier i kolonnen "ID". På den annen side tar det samme verdi som den bruker i den første spørringen i kolonnen “Area”.
Når vi setter inn den tredje posten, har vi gitt duplikatverdien “1” som vi har gitt i den første innsatserklæringen. Det vil generere en feil at "ID" -kolonnen får en duplikatverdi, som vist på bildet nedenfor.
Mens du sjekker igjen, kan du se at tabellen bare har posten til de to første innsatsuttalelsene. Selv om det ikke er noen registrering fra den tredje innsatserklæringen.
>> Velg * fra data.leverandør;
Eksempel 02: På flere kolonner
Med dette formatet, etter det unike uttrykket, bruker vi et komma-separert sett med kolonner i parentes. Sammensetningen av verdier i felt Col1 og Col2 brukes av MySQL for å bestemme det unike.
>> Opprett tabell Tabell_navn (Col1 Datatype, Col2 Datatype, Unique (Col1, Col2));
Vi har opprettet en tabell “Minister” i databasen “Data” med fem kolonner. Kolonnen "ID" er definert som "unik" og "primær". Nøkkelordet “begrensning” brukes til å navngi en unik nøkkelbegrensning som “uc_add_sal”. Det "unike" nøkkelordet brukes til å definere en unik begrensning på kolonnene som er spesifisert i parentesene, e.g., Adresse og "lønn". Nå har vi totalt tre kolonner som har "unik" begrensning for dem.
>> Opprett tabelldata.Minister (midt Int Auto_increment Primærnøkkel Ikke null unik, navn varchar (50) ikke null, adresse varchar (50), jobb varchar (50), lønn varchar (50), begrensning uc_add_sal unik (adresse, lønn));
Når du sjekker tabellen, kan du se at tabellen er tomt akkurat nå.
>> Velg * fra data.minister;
La oss sette inn noen poster i det. Den første posten vil bli lagt til bordet med suksess fordi det er den første linjen og det ikke er noen rad å matches med.
Skriv inn en annen unik post uten noen duplikatverdier i noen kolonne, som vist nedenfor.
Det påvirker ikke når vi oppgir duplikatverdiene for kolonnene som ikke har noen "unik" begrensning for dem. Ta en titt på spørringen nedenfor. Den har en duplikatverdi i kolonnen "Navn" og "Job". Det fungerer ordentlig fordi disse to kolonnene ikke har noen "unik" begrensning definert på dem.
På den annen side, når vi setter inn duplikatverdien, e.g., “13” og “Rawalpindi”, det vil generere en feil, som vist nedenfor. Dette er fordi “13” og “Rawalpindi” er spesifisert tidligere.
Når vi sjekker har vi bare tre poster i tabellen, satt inn av de tre første spørsmålene.
>> Velg * fra data.minister;
Konklusjon:
Vi har grasiøst gjort alle eksemplene på å definere unike begrensninger for enkelt- og flere kolonner mens vi bruker MySQL Workbench 8.0 og mysql kommandolinje klientskall. Forhåpentligvis får du ingen problemer mens du løser problemer knyttet til unike nøkler.