Edinstveni ključ v MySQL je eno polje ali kombinacija polj, ki zagotavljajo, da bodo vse vrednosti, shranjene v stolpcu, edinstvene. To pomeni, da stolpec ne more shranjevati podvojene vrednosti . Na primer, e-poštni naslovi in imenske številke študentov v tabeli 'student_info' ali kontaktna številka zaposlenih v tabeli 'Employee' morajo biti edinstveni.
xor cpp
MySQL nam omogoča uporabo več kot enega stolpca z UNIQUE omejitvijo v tabeli. Lahko sprejme a nič vrednost, vendar je MySQL dovoljeval samo eno ničelno vrednost na stolpec. Zagotavlja, celovitost stolpca ali skupine stolpcev za shranjevanje različnih vrednosti v tabelo.
Potrebe po edinstvenem ključu
- Uporaben je pri preprečevanju, da bi dva zapisa shranila enake vrednosti v stolpec.
- Shranjuje samo različne vrednosti, ki ohranjajo celovitost in zanesljivost baze podatkov za dostop do informacij na organiziran način.
- Deluje tudi s tujim ključem pri ohranjanju edinstvenosti tabele.
- V tabeli lahko vsebuje ničelno vrednost.
Sintaksa
Za ustvarjanje enoličnega ključa se uporablja naslednja sintaksa MySQL .
Če želimo v tabeli ustvariti samo en edinstven ključni stolpec, uporabimo spodnjo sintakso:
CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... );
Če želimo v tabeli ustvariti več kot en edinstven ključni stolpec, uporabimo spodnjo sintakso:
CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) );
Če nismo podali imena za enolično omejitev, MySQL samodejno ustvari ime za ta stolpec. Zato je pri ustvarjanju tabele priporočljivo uporabiti ime omejitve.
Parameter Razlaga
Naslednja tabela podrobno pojasnjuje parametre.
| Ime parametra | Opisi |
|---|---|
| ime_tabele | To je ime tabele, ki jo bomo ustvarili. |
| col1, col2 | V tabeli so imena stolpcev. |
| ime_omejitve | To je ime edinstvenega ključa. |
| ime_stolpca(-a) | Imena stolpcev bodo enolični ključ. |
Edinstveni ključni primer
Naslednji primer pojasnjuje, kako se edinstveni ključ uporablja v MySQL.
Ta stavek ustvari tabelo ' študent2 ' z UNIQUE omejitvijo:
CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) );
Nato izvedite poizvedbe za vstavljanje, navedene spodaj, da boste razumeli, kako deluje:
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');
Izhod
V spodnjem izpisu lahko vidimo, da je prvi INSERT poizvedba se izvede pravilno, vendar drugi stavek ne uspe in prikaže napako, ki pravi: Podvojeni vnos '1' za ključ Stud_ID.
Če želite določiti enolični ključ na več stolpcev , uporabite spodnjo poizvedbo:
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) );
V izhodu lahko vidimo, da edinstvena ključna vrednost vsebuje dva stolpca, ki sta zvitek_št in E-naslov .
Če želite to preveriti, izvedite naslednji stavek:
mysql> SHOW INDEX FROM Student3;
Tukaj lahko vidimo, da je bila edinstvena omejitev uspešno dodana v tabelo:
DROP Unique Key
Stavek ALTER TABLE nam prav tako omogoča, da iz tabele izpustimo edinstven ključ. Naslednja sintaksa se uporablja za izpust edinstvenega ključa:
ALTER TABLE table_name DROP INDEX constraint_name;
V zgornji sintaksi je ime_tabele je ime tabele, ki jo želimo spremeniti, in ime_omejitve je ime edinstvenega ključa, ki ga bomo odstranili.
Primer
Ta izjava bo odstranila uc_rollno_email omejitev iz tabele trajno.
mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email;
Za to lahko izvedemo stavek SHOW INDEX.
Enolični ključ z uporabo stavka ALTER TABLE
Ta izjava nam omogoča, da izvedemo spremembo obstoječe tabele. Včasih želimo stolpcu obstoječe tabele dodati edinstven ključ; potem se ta stavek uporabi za dodajanje edinstvenega ključa za ta stolpec.
Sintaksa
Sledi sintaksa stavka ALTER TABLE za dodajanje edinstvenega ključa:
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list);
Primer
Ta stavek ustvari tabelo ' Študenti3 ', ki nimajo edinstvenega ključnega stolpca v definiciji tabele.
CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) );
Če želimo po izdelavi tabele tej tabeli dodati edinstven ključ, moramo izvesti stavek ALTER TABLE, kot je prikazano spodaj:
mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email);
Vidimo lahko izhod, kjer sta bila oba stavka uspešno izvedena.
Če želite to preveriti, izvedite naslednji stavek:
mysql> SHOW INDEX FROM Student3;
Tukaj lahko vidimo, da je bila edinstvena omejitev uspešno dodana v tabelo: