logo

Ainutlaatuinen MySQL-avain

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.

Ainutlaatuinen MySQL-avain

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 .

Ainutlaatuinen MySQL-avain

Varmista tämä suorittamalla seuraava lauseke:

 mysql> SHOW INDEX FROM Student3; 

Tässä näemme, että yksilöllinen rajoitus on lisätty taulukkoon onnistuneesti:

Ainutlaatuinen MySQL-avain

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.

Ainutlaatuinen MySQL-avain

Varmista tämä suorittamalla seuraava lauseke:

 mysql> SHOW INDEX FROM Student3; 

Tässä näemme, että yksilöllinen rajoitus on lisätty taulukkoon onnistuneesti:

Ainutlaatuinen MySQL-avain