MySQL MariaDB

MySQL Unique Constraintsin käyttö

MySQL Unique Constraintsin käyttö
MySQL CONSTRAINT poistetaan käytöstä kuvaamaan sääntöjä, jotka sallivat tai rajoittavat kenttien arvoja, jotka saattavat pitää tai rajoittaa riveihin syötettäviä tietoja. Rajoitusten asettamisen tarkoituksena on ylläpitää tietokannan uskottavuutta. Yksi niistä on AINUTLAATUINEN rajoitus.

UNIQUE-rajoitus takaa, että melkein kaikki kentän elementit ovat erilliset toisistaan. Kentän tai kenttäryhmän UNIQUE- ja PRIMARY KEY -rajoilla on vastavuoroinen varmuus yksilöllisyydestä. Meillä voi kuitenkin olla kussakin taulukossa useita AINUTLAATUISIA rajoituksia, vaikka jokaiselle taulukolle sen sijaan yksi PRIMARY KEY -raja. Opitaan se kokeilemalla joitain esimerkkejä.

Ainutlaatuinen rajoitus Workbenchin kautta:

Ensinnäkin meidän on opittava, kuinka lisätä yksilöllisiä rajoituksia taulukkoon käytettäessä MySQL Workbench 8: ta.0. Avaa äskettäin asennettu MySQL Workbench 8.0 ja liitä se tietokantaan.

Luo taulukko 'Henkilö' kyselyalueelle kirjoittamalla alla oleva komento. Tässä taulukossa on 4 saraketta, joissa on yksi ensisijainen avain. Meidän on määritettävä yksi ainutlaatuinen sarake. Kuten näette, olemme tyhjentäneet sarakkeen 'Id' sarakkeena 'UNIQUE':

>> LUO TAULUKKO Henkilö (ID int ENSIMMÄINEN AVAIN EI NULL, Sukunimen varchar (255) EI NULL, Etunimen varchar (255), Age int, UNIQUE (ID))

Nyt taulukko "Henkilö" on luotu "UNIQUE" -sarakkeella "ID". Löydät taulukon kohdista ”Navigator” ja “Schemas”, kun taas luettelossa on taulukot.

Kun lisäät tietueita, napautat "Käytä" -painiketta, se tarkistaa lisätyt tietueet alla olevan kuvan mukaisesti. Riveillä 3 ja 4 on yksi kopioitu tietue, jolla on sama "ID". Napauta "Käytä" -painiketta muutosten tekemiseen.

Alla olevassa kuvassa se tuottaa virheen, jonka sarake "ID" on kopioinut, mikä on arvo "13".

Tietueen korjaamisen jälkeen, kun teet muutokset, se toimii oikein.

Ainutlaatuinen rajoitus komentorivin kuoren kautta:

MySQL-komentorivikuoressa lisätään AINUTLAATUISET avaimet yhteen tai useampaan sarakkeeseen. Avaa ensin komentorivisi nähdäksesi jokaisen alla olevissa esimerkeissä. Kirjoita salasanasi käyttääksesi komentokuorta.

Esimerkki 01: Yhdessä sarakkeessa

Tässä syntaksissa, kuten sarakemäärittelyssä, käytämme UNIQUE-termiä, jonka haluat soveltaa ainutlaatuisuuslakia. Kun lisäämme tai muutamme arvoa, joka luo kaksoiskappaleet tiettyyn sarakkeeseen, MySQL hylkää muutoksen ja annetaan myös poikkeus. Tässä erityisrajassa on sarakerajoitus. Ja voit käyttää sitä myös yhden kentän ainutlaatuisen säännön toteuttamiseen. Tässä on yhden sarakkeen UNIQUE-avaimen syntaksit:

>> LUO TAULUKKO table_name (sarakkeen tietotyyppi YKSILÖLLINEN, sarakkeen tietotyyppi);

Luodaan taulukon "toimittaja" tietokantaan "data", jossa on kolme saraketta. Sarake "ID" määritellään "UNIQUE".

>> LUO TAULUKON tiedot.toimittaja (id INT AUTO_INCREMENT NOT NULL UNIQUE, Name VARCHAR (50) NOT NULL, Area VARCHAR (50));

Tarkastuksen yhteydessä näet, ettei taulukossa ole vielä tietueita.

>> VALITSE * FROM-tiedoista.toimittaja;

Lisätään tietueet taulukkoon. Ensimmäinen tietue lisätään taulukkoon sujuvasti, kuten alla on esitetty.

Toinen tietue lisätään jälleen sujuvasti, koska siinä ei ole kaksoisarvoja sarakkeessa "ID". Toisaalta se ottaa saman arvon kuin sarakkeen "Alue" ensimmäisessä kyselyssä.

Kolmannen tietueen lisäämisen yhteydessä olemme toimittaneet kaksoisarvon "1", kuten olemme toimittaneet ensimmäisessä lisäyslausekkeessa. Se tuottaa virheen, että "ID" -sarakkeessa on kaksoisarvo, kuten alla olevassa kuvassa näkyy.

Tarkastellessasi uudelleen näet, että taulukossa on vain kahden ensimmäisen lisäyslausekkeen tietue. Vaikka kolmannesta lisäyslausekkeesta ei ole tietueita.

>> VALITSE * FROM-tiedoista.toimittaja;

Esimerkki 02: Useissa sarakkeissa

Tässä muodossa UNIQUE-termin jälkeen käytämme pilkuilla erotettuja sarakkeita suluissa. MySQL käyttää kenttien col1 ja col2 arvojen koostumusta yksilöllisyyden määrittämiseen.

>> LUO TAULUKKO taulukon_nimi (col1 tietotyyppi, col2 tietotyyppi, UNIQUE (col1, col2));

Olemme luoneet taulukon "ministeri" tietokantaan "data" viidellä sarakkeella. Sarake "ID" määritellään "UNIQUE" ja "PRIMARY". Hakusanalla "RAJOITUS" käytetään nimeämään yksilöllinen avainrajoitus nimellä "uc_add_sal". ”UNIQUE” -avainsanaa käytetään määrittämään UNIQUE-rajoitus sulkeissa määritettyihin sarakkeisiin, e.g., Osoite ja “Palkka”. Nyt meillä on yhteensä kolme saraketta, joilla on "UNIQUE" -rajoituksia.

>> LUO TAULUKON tiedot.ministeri (Mid INT AUTO_INCREMENT PRIMARY KEY NOT NULL UNIQUE, Name VARCHAR (50) NOT NULL, Address VARCHAR (50), Job VARCHAR (50), Palkka VARCHAR (50), CONSTRAINT uc_add_sal UNIQUE (osoite, palkka));

Tarkastellessasi pöytää näet, että pöytä on tyhjä juuri nyt.

>> VALITSE * FROM-tiedoista.ministeri;

Lisätään siihen joitain tietueita. Ensimmäinen tietue lisätään taulukkoon onnistuneesti, koska se on ensimmäinen rivi eikä riviä ole sovitettavissa.

Syötä toinen ainutlaatuinen tietue ilman kaksoisarvoja missään sarakkeessa, kuten alla on esitetty.

Se ei vaikuta siihen, kun syötämme kaksoisarvot sarakkeille, joilla ei ole "UNIQUE" -rajoitusta. Katsokaa alla olevaa kyselyä. Sillä on kaksoisarvo sarakkeissa "Nimi" ja "Työ". Se toimii oikein, koska näissä kahdessa sarakkeessa ei ole määritelty UNIQUE-rajoitusta.

Toisaalta, kun lisätään kaksoisarvo, e.g., ”13” ja “Rawalpindi”, se aiheuttaa virheen, kuten alla on esitetty. Tämä johtuu siitä, että ”13” ja “Rawalpindi” on määritelty aiemmin.

Tarkistamisen yhteydessä taulukossa on vain kolme tietuetta, jotka on lisätty kolmella ensimmäisellä kyselyllä.

>> VALITSE * FROM-tiedoista.ministeri;

Päätelmä:

Olemme tehneet kaikki esimerkit UNIQUE-rajoitusten määrittelemisestä yhdelle ja useammalle sarakkeelle käytettäessä MySQL Workbench 8.0 ja MySQL-komentorivin asiakaskuori. Toivottavasti et saa mitään ongelmia ratkaistessasi UNIQUE-näppäimiin liittyviä ongelmia.

HD Remastered Games for Linux that Never had a Linux Release Earlier
Many game developers and publishers are coming up with HD remaster of old games to extend the life of franchise, please fans requesting compatibility ...
Kuinka käyttää AutoKey-toimintoa Linux-pelien automatisointiin
AutoKey on työpöydän automaatioapuohjelma Linuxille ja X11: lle, ohjelmoitu Python 3, GTK ja Qt. Komentosarjojen ja MACRO-toimintojen avulla voit auto...
Kuinka näyttää FPS-laskuri Linux-peleissä
Linux-pelaaminen sai suuren työn, kun Valve ilmoitti Linux-tuesta Steam-asiakkaalle ja heidän peleilleen vuonna 2012. Siitä lähtien monet AAA- ja indi...