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: