MySQL MariaDB

Unieke beperkingen van MySQL gebruiken

Unieke beperkingen van MySQL gebruiken
MySQL CONSTRAINT wordt afgeschaft om de regels te beschrijven die de waarden toestaan ​​of beperken in velden die de gegevens kunnen bevatten of beperken die in de rijen kunnen worden ingevoerd. Het doel van het opleggen van beperkingen is om de geloofwaardigheid van een database te behouden. Een daarvan is de UNIEKE beperking.

De UNIQUE-beperking garandeert dat bijna alle elementen in een veld van elkaar te onderscheiden zijn. Voor een veld of een groep velden hebben de limieten UNIQUE en PRIMARY KEY wederzijds een zekerheid van individualiteit. We kunnen niettemin verschillende UNIEKE beperkingen in elke tafel hebben, hoewel in plaats daarvan één PRIMAIRE SLEUTELlimiet voor elke tafel. Laten we het leren door enkele voorbeelden te proberen.

Unieke beperking via Workbench:

Allereerst moeten we leren hoe we unieke beperkingen aan de tabel kunnen toevoegen tijdens het gebruik van MySQL Workbench 8.0. Open uw nieuw geïnstalleerde MySQL Workbench 8.0 en verbind het met de database.

In het querygebied moet u de onderstaande opdracht schrijven om een ​​tabel 'Persoon' te maken. Deze tabel heeft 4 kolommen met één primaire sleutel. We moeten één unieke kolom specificeren. Zoals je kunt zien, hebben we de kolom 'Id' gewist als de kolom 'UNIEK':

>> TABEL MAKEN Persoon (ID int PRIMAIRE SLEUTEL NIET NULL, Achternaam varchar(255) NIET NULL, Voornaam varchar(255), Leeftijd int, UNIEK(ID));

Nu is de tabel "Persoon" gemaakt met zijn "UNIEKE" kolom "ID". U kunt de tabel vinden onder de "Navigator" en "Schema's" terwijl deze wordt vermeld in de optie "Tabellen".

Wanneer u tijdens het invoegen van de records op de knop "Toepassen" tikt, worden de ingevoegde records beoordeeld zoals hieronder weergegeven. U kunt zien dat we één gedupliceerd record hebben op regel 3 en 4 met dezelfde "ID". Tik op de knop "Toepassen" om wijzigingen toe te passen.

In de onderstaande afbeelding genereert het een fout die de kolom "ID" heeft gedupliceerd, wat de waarde "13" is.

Na het corrigeren van het record, wanneer u de wijzigingen toepast, zal het correct werken.

Unieke beperking via Command-Line Shell:

In de MySQL-opdrachtregelshell zullen we UNIEKE sleutels toevoegen aan een of meerdere kolommen. Open eerst uw opdrachtregel om een ​​glimp van elk te zien in de onderstaande voorbeelden. Typ uw wachtwoord om de opdrachtshell te gebruiken.

Voorbeeld 01: Op één kolom

Binnen deze syntaxis, zoals in kolomspecificatie, gebruiken we de UNIEKE term die u wilt toepassen op de uniciteitswet. Zodra we een waarde invoegen of wijzigen die duplicaten in de specifieke kolom creëert, wordt de wijziging geweigerd door MySQL en wordt er ook een uitzondering gegeven. Er is een kolombeperking in deze specifieke limiet. En je zou dat ook kunnen gebruiken om de unieke regel van één veld te implementeren. Hier is een syntaxis voor een UNIEKE sleutel met één kolom:

>> CREATE TABLE table_name (col datatype UNIEK, col datatype);

Laten we een tabel "leverancier" maken in de database "gegevens" met drie kolommen erin. De kolom “ID” is gedefinieerd als “UNIEK”.

>> CRE TER TABEL gegevens.leverancier (id INT AUTO_INCREMENT NIET NULL UNIEK, Naam VARCHAR(50) NIET NULL, Gebied VARCHAR(50));

Bij het controleren kunt u zien dat de tafel nog geen records heeft.

>> KIES * UIT gegevens.leverancier;

Laten we de records in de tabel invoegen. Het eerste record wordt soepel in de tabel ingevoegd, zoals hieronder wordt weergegeven:.

Het tweede record wordt weer soepel ingevoegd omdat het geen dubbele waarden heeft in de kolom "ID". Aan de andere kant neemt het dezelfde waarde aan als het gebruikt in de eerste zoekopdracht in kolom "Gebied".

Bij het invoegen van het derde record hebben we de dubbele waarde "1" opgegeven zoals we hebben gegeven in de eerste insert-instructie. Het genereert een foutmelding dat de kolom "ID" een dubbele waarde krijgt, zoals weergegeven in de onderstaande afbeelding image.

Terwijl je nogmaals controleert, kun je zien dat de tabel alleen het record bevat van de eerste twee insert-statements. Hoewel er geen record is van de derde insert-instructie.

>> KIES * UIT gegevens.leverancier;

Voorbeeld 02: Op meerdere kolommen

Bij dit formaat passen we na de term UNIEK een door komma's gescheiden reeks kolommen tussen haakjes toe. De samenstelling van waarden in veld col1 en col2 wordt door MySQL gebruikt om de uniciteit te bepalen.

>> CREATE TABLE table_name (col1 datatype, col2 datatype, UNIEK (col1,col2));

We hebben een tabel "minister" gemaakt in de database "data" met vijf kolommen. De kolom “ID” is gedefinieerd als “UNIEK” en “PRIMAIR”. Het trefwoord "CONSTRAINT" wordt gebruikt om een ​​unieke sleutelbeperking een naam te geven als "uc_add_sal". Het sleutelwoord "UNIQUE" wordt gebruikt om een ​​UNIQUE-beperking te definiëren voor de kolommen die tussen haakjes zijn gespecificeerd, bijv.g., Adres en “Salaris”. Nu hebben we in totaal drie kolommen met de beperking "UNIEKE" erop.

>> CRE TER TABEL gegevens.minister (Mid INT AUTO_INCREMENT PRIMARY KEY NIET NULL UNIEK, Naam VARCHAR(50) NOT NULL, Adres VARCHAR(50), Job VARCHAR(50), Salaris VARCHAR(50), CONSTRAINT uc_add_sal UNIEK (Adres, Salaris));

Als je de tafel controleert, kun je zien dat de tafel nu leeg is.

>> KIES * UIT gegevens.minister;

Laten we er wat records in invoegen. Het eerste record wordt met succes aan de tabel toegevoegd omdat het de eerste regel is en er geen rij is om mee te matchen.

Voer een ander uniek record in zonder dubbele waarden in een kolom, zoals hieronder weergegeven.

Het heeft geen invloed op wanneer we de dubbele waarden invoeren voor de kolommen die geen "UNIEKE" beperking hebben. Bekijk de onderstaande vraag the. Het heeft een dubbele waarde in de kolom "Naam" en "Job". Het werkt goed omdat er voor deze twee kolommen geen "UNIEKE" beperking is gedefinieerd defined.

Aan de andere kant, wanneer we de dubbele waarde invoegen, e.g., "13" en "Rawalpindi", het zal een fout genereren, zoals hieronder weergegeven. Dit komt omdat "13" en "Rawalpindi" eerder zijn opgegeven.

Bij het controleren hebben we slechts drie records in de tabel, ingevoegd door de eerste drie query's.

>> KIES * UIT gegevens.minister;

Conclusie:

We hebben alle voorbeelden van het definiëren van UNIEKE beperkingen op de enkele en meerdere kolommen gracieus gedaan tijdens het gebruik van de MySQL Workbench 8.0 en MySQL-opdrachtregelclientshell. Hopelijk krijg je geen problemen bij het oplossen van problemen met UNIEKE sleutels.

Hoe Xdotool te gebruiken om muisklikken en toetsaanslagen in Linux te stimuleren
Xdotool is een gratis en open source opdrachtregelprogramma voor het simuleren van muisklikken en toetsaanslagen. Dit artikel behandelt een korte hand...
Top 5 ergonomische computermuisproducten voor Linux
Veroorzaakt langdurig computergebruik pijn in uw pols of vingers?? Heb je last van stijve gewrichten en moet je constant de hand schudden?? Voelt u ee...
Hoe de muis- en touchpad-instellingen te wijzigen met Xinput in Linux
De meeste Linux-distributies worden standaard geleverd met de bibliotheek "libinput" om invoergebeurtenissen op een systeem af te handelen. Het kan in...