MySQL:n ainutlaatuinen avain on yksittäinen kenttä tai kenttien yhdistelmä, joka varmistaa, että kaikki sarakkeeseen tallennettavat arvot ovat ainutlaatuisia. Se tarkoittaa, että sarake ei voi tallentaa päällekkäisiä arvoja . Esimerkiksi opiskelijoiden sähköpostiosoitteiden ja niminumeroiden opiskelijatiedot-taulukossa tai työntekijöiden yhteyshenkilöiden numeroiden Työntekijä-taulukossa tulee olla yksilöllisiä.
java dynaaminen taulukko
MySQL antaa meille mahdollisuuden käyttää taulukossa useampaa kuin yhtä saraketta YKSILÖLLÄ rajoituksella. Se voi hyväksyä a tyhjä arvo, mutta MySQL salli vain yhden nolla-arvon saraketta kohden. Se takaa eheys sarakkeesta tai sarakeryhmästä tallentaaksesi erilaisia arvoja taulukkoon.
Ainutlaatuisen avaimen tarpeet
- Se on hyödyllinen estämään kahta tietuetta tallentamasta sarakkeeseen samoja arvoja.
- Se tallentaa vain erilliset arvot, jotka säilyttävät tietokannan eheyden ja luotettavuuden tietojen saamiseksi järjestelmällisesti.
- Se toimii myös vieraalla avaimella säilyttäen taulukon ainutlaatuisuuden.
- Se voi sisältää nolla-arvon taulukkoon.
Syntaksi
Seuraavaa syntaksia käytetään yksilöllisen avaimen luomiseen MySQL .
Jos haluamme luoda taulukkoon vain yhden ainutlaatuisen avainsarakkeen, käytä alla olevaa syntaksia:
CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... );
Jos haluamme luoda taulukkoon useamman kuin yhden yksilöllisen avainsarakkeen, käytä alla olevaa syntaksia:
CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) );
Jos emme ole määrittäneet nimeä ainutlaatuiselle rajoitukselle, MySQL luo nimen tälle sarakkeelle automaattisesti. Joten on suositeltavaa käyttää rajoitteen nimeä taulukkoa luotaessa.
Parametrin selitys
Seuraava taulukko selittää parametrit yksityiskohtaisesti.
Parametrin nimi | Kuvaukset |
---|---|
taulukon_nimi | Se on sen taulukon nimi, jonka aiomme luoda. |
sarake1, sarake2 | Se on sarakkeiden nimet, jotka sisältävät taulukon. |
rajoitteen_nimi | Se on yksilöllisen avaimen nimi. |
sarakkeen_nimi(t) | Se on sarakkeen nimi (nimet), joista tulee yksilöllinen avain. |
Ainutlaatuinen avainesimerkki
Seuraava esimerkki selittää, kuinka yksilöllistä avainta käytetään MySQL:ssä.
Tämä lause luo taulukon Opiskelija 2 ' YKSILÖLLÄ rajoituksella:
CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) );
Suorita seuraavaksi alla luetellut lisäyskyselyt ymmärtääksesi, miten se toimii:
mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Peter', '[email protected]', 22, 'Texas'), (2, 'Suzi', '[email protected]', 24, 'California'), (3, 'Joseph', '[email protected]', 23, 'Alaska'); mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Stephen', '[email protected]', 22, 'Texas');
Lähtö
Alla olevassa tuotoksessa voimme nähdä, että ensimmäinen LISÄÄ kysely suoritetaan oikein, mutta toinen käsky epäonnistuu ja antaa virheilmoituksen, joka sanoo: Kopioi merkintä '1' avaimelle Stud_ID.
Jos haluat määrittää yksilöllisen avaimen päälle useita sarakkeita , käytä kyselyä seuraavasti:
CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25), CONSTRAINT uc_rollno_email Unique(Roll_No, Email) );
Tulosteessa voimme nähdä, että yksilöllinen avaimen arvo sisältää kaksi saraketta, jotka ovat Roll_No ja Sähköposti .
Varmista tämä suorittamalla seuraava lauseke:
mysql> SHOW INDEX FROM Student3;
Tässä näemme, että yksilöllinen rajoitus on lisätty taulukkoon onnistuneesti:
DROP ainutlaatuinen avain
ALTER TABLE -käsky antaa meille myös mahdollisuuden pudottaa ainutlaatuisen avaimen taulukosta. Ainutlaatuisen avaimen pudotukseen käytetään seuraavaa syntaksia:
ALTER TABLE table_name DROP INDEX constraint_name;
Yllä olevassa syntaksissa taulukon_nimi on sen taulukon nimi, jota haluamme muokata, ja rajoitteen_nimi on sen ainutlaatuisen avaimen nimi, jonka aiomme poistaa.
Esimerkki
Tämä lausunto poistaa uc_rollno_email rajoitus taulukosta pysyvästi.
mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email;
Voimme suorittaa SHOW INDEX -lauseen juuri tähän.
Ainutlaatuinen avain käyttäen ALTER TABLE -lausetta
Tämän lausunnon avulla voimme tehdä muutoksia olemassa olevaan taulukkoon. Joskus haluamme lisätä ainutlaatuisen avaimen olemassa olevan taulukon sarakkeeseen; sitten tätä käskyä käytetään lisäämään yksilöllinen avain kyseiselle sarakkeelle.
Syntaksi
Seuraavassa on ALTER TABLE -käskyn syntaksi yksilöllisen avaimen lisäämiseksi:
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list);
Esimerkki
Tämä lause luo taulukon Opiskelijat 3 ' joilla ei ole ainutlaatuista avainsaraketta taulukon määritelmään.
CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) );
Taulukon luomisen jälkeen, jos haluamme lisätä tähän taulukkoon ainutlaatuisen avaimen, meidän on suoritettava ALTER TABLE -käsky seuraavasti:
mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email);
Näemme tulosteen, jossa molemmat lauseet suoritettiin onnistuneesti.
Varmista tämä suorittamalla seuraava lauseke:
mysql> SHOW INDEX FROM Student3;
Tässä näemme, että yksilöllinen rajoitus on lisätty taulukkoon onnistuneesti: