Jedinstveni ključ u MySQL-u jedno je polje ili kombinacija polja koja osiguravaju jedinstvenost svih vrijednosti koje se spremaju u stupac. To znači da stupac ne može pohranjivati duplicirane vrijednosti . Na primjer, adrese e-pošte i brojevi studenata u tablici 'info_student' ili kontaktni brojevi zaposlenika u tablici 'Zaposlenik' trebaju biti jedinstveni.
prebacivanje metoda java
MySQL nam omogućuje korištenje više od jednog stupca s UNIQUE ograničenjem u tablici. Može prihvatiti a ništavan vrijednost, ali MySQL je dopuštao samo jednu null vrijednost po stupcu. Osigurava integritet stupca ili grupe stupaca za spremanje različitih vrijednosti u tablicu.
Potrebe za jedinstvenim ključem
- Korisno je u sprječavanju da dva zapisa pohranjuju identične vrijednosti u stupac.
- Pohranjuje samo različite vrijednosti koje održavaju cjelovitost i pouzdanost baze podataka za pristup informacijama na organiziran način.
- Također radi sa stranim ključem u očuvanju jedinstvenosti tablice.
- Može sadržavati nultu vrijednost u tablici.
Sintaksa
Sljedeća sintaksa koristi se za stvaranje jedinstvenog ključa MySQL .
Ako želimo stvoriti samo jedan jedinstveni ključni stupac u tablici, upotrijebite donju sintaksu:
CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... );
Ako želimo stvoriti više od jednog jedinstvenog ključnog stupca u tablici, upotrijebite donju sintaksu:
CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) );
Ako nismo naveli naziv za jedinstveno ograničenje, MySQL automatski generira naziv za ovaj stupac. Dakle, preporuča se koristiti naziv ograničenja prilikom izrade tablice.
Parametar Objašnjenje
Sljedeća tablica detaljno objašnjava parametre.
| Naziv parametra | Opisi |
|---|---|
| naziv_tablice | To je naziv tablice koju ćemo kreirati. |
| stupac1, stupac2 | To su nazivi stupaca koji se nalaze u tablici. |
| ime_ograničenja | To je naziv jedinstvenog ključa. |
| naziv(i) stupca | Naziv(a) stupca bit će jedinstveni ključ. |
Jedinstveni primjer ključa
Sljedeći primjer objašnjava kako se jedinstveni ključ koristi u MySQL-u.
Ova izjava stvara tablicu ' Student2 ' s UNIQUE ograničenjem:
CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) );
Zatim izvršite dolje navedene upite za umetanje da biste razumjeli kako funkcionira:
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');
Izlaz
U donjem izlazu možemo vidjeti da je prvi INSERT upit izvršava se ispravno, ali druga izjava ne uspijeva i daje pogrešku koja kaže: Dvostruki unos '1' za ključ Stud_ID.
Ako želite definirati jedinstveni ključ na više stupaca , koristite upit kao u nastavku:
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) );
U izlazu možemo vidjeti da jedinstvena vrijednost ključa sadrži dva stupca koji su Rola_br i E-mail .
Da biste to provjerili, izvršite sljedeću izjavu:
mysql> SHOW INDEX FROM Student3;
Ovdje možemo vidjeti da je jedinstveno ograničenje uspješno dodano u tablicu:
DROP Jedinstveni ključ
Naredba ALTER TABLE nam također omogućuje ispuštanje jedinstvenog ključa iz tablice. Za ispuštanje jedinstvenog ključa koristi se sljedeća sintaksa:
ALTER TABLE table_name DROP INDEX constraint_name;
U gornjoj sintaksi, naziv_tablice je naziv tablice koju želimo modificirati, i ime_ograničenja je naziv jedinstvenog ključa koji ćemo ukloniti.
Primjer
Ova će izjava ukloniti uc_rollno_e-mail ograničenje iz tablice trajno.
mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email;
Možemo izvršiti naredbu SHOW INDEX za vrlo ovo.
Jedinstveni ključ koji koristi naredbu ALTER TABLE
Ova izjava nam omogućuje da izvršimo izmjene u postojećoj tablici. Ponekad želimo dodati jedinstveni ključ u stupac postojeće tablice; tada se ova izjava koristi za dodavanje jedinstvenog ključa za taj stupac.
Sintaksa
Slijedi sintaksa izjave ALTER TABLE za dodavanje jedinstvenog ključa:
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list);
Primjer
Ova izjava stvara tablicu ' Učenici3 ' koji nemaju jedinstveni ključni stupac u definiciji tablice.
CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) );
Nakon kreiranja tablice, ako želimo dodati jedinstveni ključ ovoj tablici, trebamo izvršiti naredbu ALTER TABLE kao u nastavku:
mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email);
Možemo vidjeti izlaz gdje su obje naredbe uspješno izvršene.
Da biste to provjerili, izvršite sljedeću izjavu:
mysql> SHOW INDEX FROM Student3;
Ovdje možemo vidjeti da je jedinstveno ograničenje uspješno dodano u tablicu: