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: