MySQL MariaDB

Brug af MySQL unikke begrænsninger

Brug af MySQL unikke begrænsninger
MySQL CONSTRAINT afvises for at beskrive de regler, der tillader eller begrænser værdierne i felter, der kan indeholde eller begrænse de data, der kan indtastes i rækkerne. Målet med at indføre begrænsninger er at opretholde en databases troværdighed. En af dem er den UNIKE begrænsning.

UNIQUE-begrænsningen garanterer, at næsten alle elementer i et felt er forskellige fra hinanden. For et felt eller en gruppe af felter har UNIQUE og PRIMARY KEY-grænserne gensidigt en forsikring om individualitet. Vi kan dog ikke desto mindre have flere UNIQUE begrænsninger i hver tabel, men en PRIMÆR NØGLE-grænse for hver tabel i stedet. Lad os lære det ved at prøve nogle eksempler.

Unik begrænsning via arbejdsbænk:

Først og fremmest skal vi lære om, hvordan du tilføjer unikke begrænsninger til tabellen, mens du bruger MySQL Workbench 8.0. Åbn din nyinstallerede MySQL Workbench 8.0 og tilslut det til databasen.

I forespørgselsområdet skal du skrive nedenstående kommando for at oprette en tabel 'Person'. Denne tabel har 4 kolonner med en primær nøgle. Vi skal angive en unik kolonne. Som du kan se, har vi ryddet kolonnen 'Id' som 'UNIK' kolonnen:

>> OPRET TABELPerson (ID int PRIMÆR NØGLE IKKE NULL, Efternavn varchar (255) IKKE NULL, Fornavn varchar (255), Alder int, UNIK (ID));

Nu er tabellen "Person" oprettet med dens "UNIKE" kolonne "ID". Du kan finde tabellen under "Navigator" og "Skemaer", mens de er anført i "Tabeller".

Når du trykker på knappen "Anvend", når du indsætter posterne, gennemgår den de indsatte poster som vist nedenfor. Du kan se, at vi har en duplikeret post på linje 3 og 4, der har det samme "ID". Tryk på knappen "Anvend" for at anvende ændringer.

I nedenstående billede genererer det en fejl, som kolonnen "ID" har duplikeret, hvilket er værdien "13".

Når du har korrigeret posten, fungerer den korrekt, når du anvender ændringerne.

Unik begrænsning via kommandolinjeskal:

I MySQL-kommandolinjeskallen tilføjer vi UNIKE nøgler til en eller flere kolonner. Åbn din kommandolinje først for at få et glimt af hver af nedenstående eksempler. Indtast din adgangskode for at bruge kommandoskallen.

Eksempel 01: På enkeltkolonne

Inden for denne syntaks, som i kolonnespecifikation, bruger vi det UNIQUE udtryk, som du gerne vil anvende unikke loven. Når vi først har indsat eller ændret en værdi, der skaber duplikater i den bestemte kolonne, nægtes ændringen af ​​MySQL, og der gives også en undtagelse. Der vil være en kolonnebegrænsning i denne særlige grænse. Og det kan du også bruge til at implementere et felts unikke regel. Her er en syntaks for en ENKELT nøgle med en enkelt kolonne:

>> Opret TABEL tabelnavn (kol. Datatype UNIK, kol. Datatype);

Lad os oprette en tabel "leverandør" i databasen "data" med tre kolonner i. Kolonnen "ID" er defineret som "UNIK".

>> Opret TABEL-data.leverandør (id INT AUTO_INCREMENT IKKE NULL UNIK, Navn VARCHAR (50) IKKE NULL, Område VARCHAR (50));

Ved kontrol kan du se, at tabellen endnu ikke har nogen poster.

>> VÆLG * FRA data.leverandør;

Lad os indsætte poster i tabellen. Den første post indsættes problemfrit i tabellen som vist nedenfor.

Den anden post indsættes glat igen, da den ikke har nogen duplikatværdier i kolonnen "ID". På den anden side tager den samme værdi som den bruger i den første forespørgsel i kolonne "Område".

Ved indsættelse af den tredje post har vi angivet den duplikerede værdi "1", som vi har angivet i den første indsætningserklæring. Det genererer en fejl, at "ID" -kolonnen får en duplikatværdi, som vist på billedet nedenfor.

Mens du kontrollerer igen, kan du se, at tabellen kun har registreringen af ​​de første to indsætningsudsagn. Mens der ikke er nogen registrering fra den tredje indsætningserklæring.

>> VÆLG * FRA data.leverandør;

Eksempel 02: På flere kolonner

Efter dette UNIQUE-udtryk anvender vi et kommasepareret kolonnesæt i parentes. Sammensætningen af ​​værdier i felt col1 og col2 bruges af MySQL til at bestemme det unikke.

>> Opret TABEL tabelnavn (col1 datatype, col2 datatype, UNIQUE (col1, col2));

Vi har oprettet en tabel "minister" i databasen "data" med fem kolonner. Kolonnen "ID" er defineret som "UNIK" og "PRIMÆR". Nøgleordet "CONSTRAINT" bruges til at navngive en unik nøglebegrænsning som "uc_add_sal". Nøgleordet "UNIQUE" bruges til at definere en UNIQUE-begrænsning for de kolonner, der er angivet i parentes, e.g., Adresse og “Løn”. Nu har vi i alt tre kolonner, der har "UNIK" begrænsning.

>> Opret TABEL-data.minister (Mid INT AUTO_INCREMENT PRIMÆR NØGLE IKKE NULL UNIK, Navn VARCHAR (50) IKKE NULL, Adresse VARCHAR (50), Job VARCHAR (50), Løn VARCHAR (50), CONSTRAINT uc_add_sal UNIQUE (Adresse, løn));

Når du tjekker bordet, kan du se, at tabellen er tom lige nu.

>> VÆLG * FRA data.minister;

Lad os indsætte nogle poster i det. Den første post føjes til tabellen med succes, fordi det er den første linje, og der ikke er nogen række, der skal matches.

Indtast en anden unik post uden duplikatværdier i en hvilken som helst kolonne, som vist nedenfor.

Det påvirker ikke, når vi indtaster de duplikerede værdier for kolonnerne, der ikke har nogen "UNIK" begrænsning. Se på nedenstående forespørgsel. Det har en duplikatværdi i kolonnen "Navn" og "Job". Det fungerer korrekt, fordi disse to kolonner ikke har nogen "UNIK" begrænsning defineret for dem.

På den anden side, når vi indsætter duplikatværdien, f.eks.g., “13” og “Rawalpindi”, det genererer en fejl som vist nedenfor. Dette skyldes, at "13" og "Rawalpindi" er blevet specificeret tidligere.

Ved kontrol har vi kun tre poster i tabellen indsat af de første tre forespørgsler.

>> VÆLG * FRA data.minister;

Konklusion:

Vi har med glæde udført alle eksemplerne på at definere UNIQUE begrænsninger for den enkelte og flere kolonner, mens du bruger MySQL Workbench 8.0 og MySQL kommandolinjeklient shell. Forhåbentlig får du ingen problemer, mens du løser problemer i forbindelse med UNIKE nøgler.

Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....
Bedste spil at spille med håndsporing
Oculus Quest introducerede for nylig den gode idé om håndsporing uden controllere. Med et stadigt stigende antal spil og aktiviteter, der udfører supp...
Sådan vises OSD-overlay i fuldskærms Linux-apps og -spil
Afspilning af fuldskærmsspil eller brug af apps i distraktionsfri fuldskærmstilstand kan afskære dig fra relevante systemoplysninger, der er synlige i...