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”.
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 .
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:
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.
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: