logo

MySQL unikālā atslēga

Unikāla atslēga MySQL ir viens lauks vai lauku kombinācija, kas nodrošina, ka visas kolonnā saglabātās vērtības būs unikālas. Tas nozīmē, ka kolonnu nevar uzglabāt dublētās vērtības . Piemēram, studentu e-pasta adresēm un saraksta numuriem tabulā “students_info” vai darbinieku kontaktpersonu numuriem tabulā “Darbinieks” jābūt unikāliem.

ins atslēga

MySQL ļauj tabulā izmantot vairāk nekā vienu kolonnu ar UNIKĀLU ierobežojumu. Tā var pieņemt a null vērtību, bet MySQL katrā kolonnā atļāva tikai vienu nulles vērtību. Tas nodrošina integritāte kolonnas vai kolonnu grupas, lai saglabātu dažādas vērtības tabulā.

Nepieciešamība pēc unikālas atslēgas

  • Tas ir noderīgi, lai neļautu diviem ierakstiem kolonnā saglabāt identiskas vērtības.
  • Tajā tiek saglabātas tikai atšķirīgas vērtības, kas saglabā datu bāzes integritāti un uzticamību, lai organizētā veidā piekļūtu informācijai.
  • Tas darbojas arī ar ārējo atslēgu, lai saglabātu tabulas unikalitāti.
  • Tabulā var būt nulles vērtība.

Sintakse

Lai izveidotu unikālu atslēgu, tiek izmantota šāda sintakse MySQL .

Ja mēs vēlamies tabulā izveidot tikai vienu unikālu atslēgas kolonnu, izmantojiet sintaksi, kā norādīts tālāk.

 CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... ); 

Ja mēs vēlamies tabulā izveidot vairāk nekā vienu unikālu atslēgu kolonnu, izmantojiet sintaksi, kā norādīts tālāk.

 CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) ); 

Ja mēs neesam norādījuši unikālā ierobežojuma nosaukumu, MySQL automātiski ģenerē nosaukumu šai kolonnai. Tāpēc, veidojot tabulu, ieteicams izmantot ierobežojuma nosaukumu.

Parametra skaidrojums

Nākamajā tabulā ir detalizēti izskaidroti parametri.

Parametra nosaukums Apraksti
tabulas_nosaukums Tas ir tabulas nosaukums, kuru mēs gatavojamies izveidot.
sleja 1, kolonna 2 Tie ir kolonnu nosaukumi, kas ietverti tabulā.
ierobežojuma_nosaukums Tas ir unikālās atslēgas nosaukums.
kolonnas_nosaukums(-i) Tas ir kolonnas nosaukums(-i), kas būs unikāla atslēga.

Unikāls atslēgas piemērs

Nākamajā piemērā ir paskaidrots, kā MySQL tiek izmantota unikāla atslēga.

Šis paziņojums izveido tabulu Students2 ' ar UNIKĀLU ierobežojumu:

 CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) ); 

Pēc tam izpildiet tālāk norādītos ievietošanas vaicājumus, lai saprastu, kā tas darbojas:

 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'); 

Izvade

Zemāk redzamajā izlaidē mēs redzam, ka pirmais INSERT vaicājumu izpilda pareizi, bet otrais priekšraksts neizdodas un parāda kļūdu, kas saka: Atslēgas Stud_ID ievades dublikāts “1”.

MySQL unikālā atslēga

Ja vēlaties definēt unikālo atslēgu ieslēgts vairākas kolonnas , izmantojiet vaicājumu, kā norādīts tālāk:

 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) ); 

Izvadē mēs varam redzēt, ka unikālā atslēgas vērtība satur divas kolonnas, kas ir Roll_Nr un E-pasts .

MySQL unikālā atslēga

Lai to pārbaudītu, izpildiet šādu paziņojumu:

 mysql> SHOW INDEX FROM Student3; 

Šeit mēs redzam, ka unikālais ierobežojums ir veiksmīgi pievienots tabulai:

MySQL unikālā atslēga

DROP unikālo atslēgu

ALTER TABLE priekšraksts arī ļauj mums nomest unikālo atslēgu no tabulas. Lai nomestu unikālo atslēgu, tiek izmantota šāda sintakse:

 ALTER TABLE table_name DROP INDEX constraint_name; 

Iepriekš minētajā sintaksē tabulas_nosaukums ir tās tabulas nosaukums, kuru vēlamies modificēt, un ierobežojuma_nosaukums ir tās unikālās atslēgas nosaukums, kuru mēs gatavojamies noņemt.

Piemērs

Šis paziņojums noņems uc_rollno_email ierobežojums no tabulas pastāvīgi.

 mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email; 

Mēs varam izpildīt priekšrakstu SHOW INDEX.

Unikāla atslēga, izmantojot paziņojumu ALTER TABLE

Šis paziņojums ļauj mums veikt izmaiņas esošajā tabulā. Dažreiz mēs vēlamies esošas tabulas kolonnai pievienot unikālu atslēgu; tad šis paziņojums tiek izmantots, lai pievienotu šīs kolonnas unikālo atslēgu.

Sintakse

Tālāk ir norādīta priekšraksta ALTER TABLE sintakse, lai pievienotu unikālu atslēgu:

 ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list); 

Piemērs

Šis paziņojums izveido tabulu Studenti 3 kuriem tabulas definīcijā nav unikālas atslēgas kolonnas.

 CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) ); 

Pēc tabulas izveidošanas, ja vēlamies šai tabulai pievienot unikālu atslēgu, mums ir jāizpilda ALTER TABLE priekšraksts, kā norādīts tālāk:

 mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email); 

Mēs varam redzēt izvadi, kurā abi paziņojumi ir veiksmīgi izpildīti.

MySQL unikālā atslēga

Lai to pārbaudītu, izpildiet šādu paziņojumu:

 mysql> SHOW INDEX FROM Student3; 

Šeit mēs redzam, ka unikālais ierobežojums ir veiksmīgi pievienots tabulai:

MySQL unikālā atslēga