MySQL MariaDB

Bruke MySQL unike begrensninger

Bruke MySQL unike begrensninger
MySQL CONSTRAINT blir kastet av for å beskrive reglene som tillater eller begrenser verdiene i felt som kan inneholde eller begrense dataene som kan legges inn i radene. Målet med å innføre begrensninger er å opprettholde troverdigheten til en database. En av dem er den UNIKE begrensningen.

Den UNIKE begrensningen garanterer at nesten alle elementene i et felt er forskjellige fra hverandre. For et felt eller en gruppe av felt har UNIQUE og PRIMARY KEY-grenser gjensidig en forsikring om individualitet. Vi kan likevel ha flere UNIKE begrensninger i hver tabell, selv om det i stedet er en PRIMÆR NØKKEL-grense. La oss lære det ved å prøve noen eksempler.

Unik begrensning via arbeidsbenk:

Først og fremst må vi lære om hvordan du legger til unike begrensninger i tabellen mens du bruker MySQL Workbench 8.0. Åpne den nylig installerte MySQL Workbench 8.0 og koble den til databasen.

I spørringsområdet må du skrive kommandoen nedenfor for å lage en tabell 'Person'. Denne tabellen har fire kolonner med en primærnøkkel. Vi må spesifisere en unik kolonne. Som du ser, har vi ryddet kolonnen "Id" som "UNIK" -kolonnen:

>> OPPRETT TABELL Person (ID int PRIMÆR NØKKEL IKKE NULL, Etternavn varchar (255) IKKE NULL, Fornavn varchar (255), Alder int, UNIK (ID));

Nå er tabellen "Person" opprettet med sin "UNIKE" kolonne "ID". Du finner tabellen under "Navigator" og "Skjemaer" mens du er oppført i "Tabeller".

Når du trykker på "Bruk" -knappen når du setter inn postene, vil den se på de innsatte postene som vist nedenfor. Du kan se at vi har en duplisert post på linje 3 og 4 som har samme "ID". Trykk på "Bruk" -knappen for å bruke endringene.

I bildet nedenfor genererer det en feil som kolonnen “ID” har duplisert, som er verdien “13”.

Etter at du har 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 hver i eksemplene nedenfor. Skriv inn passordet ditt for å bruke kommandoskallet.

Eksempel 01: På enkeltkolonne

Innenfor denne syntaksen, som i kolonnespesifikasjon, bruker vi det UNIKE begrepet om at du vil bruke loven om unikhet. Når vi setter inn eller endrer en verdi som skaper duplikater i den aktuelle kolonnen, vil modifikasjonen 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 den til å implementere ett felts unike regel også. Her er en syntaks for en ENKELT nøkkel med en kolonne:

>> OPPRETT TABELL tabellnavn (kol. Datatype UNIK, kol. Datatype);

La oss lage en "leverandør" -tabell i databasen "data" med tre kolonner. Kolonnen “ID” er definert som “UNIK”.

>> OPPRETT TABELLdata.leverandør (id INT AUTO_INCREMENT NOT NULL UNIQUE, Name VARCHAR (50) NOT NULL, Area 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 vil bli satt inn i tabellen jevnt, som vist nedenfor.

Den andre posten settes inn jevnt igjen siden den ikke har dupliserte verdier i kolonnen "ID". På den annen side tar den samme verdi som den bruker i den første spørringen i kolonnen "Område".

Når vi satte inn den tredje posten, har vi gitt duplikatverdien "1" slik vi har oppgitt i den første innsettingsuttalelsen. Det vil generere en feil om at "ID" -kolonnen får en duplikatverdi, som vist på bildet nedenfor.

Mens du sjekker igjen, kan du se at tabellen bare har oversikten over de to første innleggssetningene. Selv om det ikke er noen oversikt fra den tredje innleggssetningen.

>> VELG * FRA data.leverandør;

Eksempel 02: På flere kolonner

Med dette formatet, etter den UNIKE termen, 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 tabellnavn (col1 datatype, col2 datatype, UNIQUE (col1, col2));

Vi har laget en tabell "minister" i databasen "data" med fem kolonner. Kolonnen “ID” er definert som “UNIK” og “PRIMÆR”. Nøkkelordet "CONSTRAINT" brukes til å gi en unik nøkkelbegrensning navnet "uc_add_sal". Nøkkelordet "UNIK" brukes til å definere en UNIK begrensning på kolonnene som er angitt i parentes, e.g., Adresse og “Lønn”. Nå har vi totalt tre kolonner med "UNIK" begrensning på dem.

>> OPPRETT TABELLdata.minister (Mid INT AUTO_INCREMENT PRIMARY KEY NOT NULL UNIQUE, Name VARCHAR (50) NOT NULL, Address VARCHAR (50), Job VARCHAR (50), Lønn VARCHAR (50), CONSTRAINT uc_add_sal UNIQUE (Address, Salary));

Når du sjekker tabellen, kan du se at tabellen er tom akkurat nå.

>> VELG * FRA data.minister;

La oss sette inn noen poster i den. Den første posten vil bli lagt til i tabellen med hell fordi det er første linje og det ikke er noen linje å matche med.

Skriv inn en annen unik post uten duplikatverdier i noen kolonne, som vist nedenfor.

Det påvirker ikke når vi legger inn duplikatverdiene for kolonnene som ikke har noen "UNIK" begrensning. Ta en titt på spørringen nedenfor. Den har en duplikatverdi i kolonnen "Navn" og "Jobb". Det fungerer ordentlig fordi disse to kolonnene ikke har noen "UNIK" begrensning.

På den annen side, når vi setter inn duplikatverdien, f.eks.g., “13” og “Rawalpindi”, vil det generere en feil, som vist nedenfor. Dette er fordi “13” og “Rawalpindi” er spesifisert tidligere.

Når vi har sjekket, har vi bare tre poster i tabellen, satt inn av de tre første spørsmålene.

>> VELG * FRA data.minister;

Konklusjon:

Vi har nådig gjort alle eksemplene for å definere UNIQUE begrensninger for enkelt- og flere kolonner mens du bruker MySQL Workbench 8.0 og MySQL kommandolinjeklientskall. Forhåpentligvis får du ingen problemer mens du løser problemer knyttet til UNIKE nøkler.

Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...
Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...
Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...