logo

Unikalny klucz MySQL

Unikalny klucz w MySQL to pojedyncze pole lub kombinacja pól, które zapewniają, że wszystkie wartości przechowywane w kolumnie będą unikalne. Oznacza to, że kolumna nie może przechowywać zduplikowane wartości . Na przykład adresy e-mail i numery rejestracyjne studentów w tabeli „Informacje o_studencie” lub numer kontaktowy pracowników w tabeli „Pracownik” powinny być unikalne.

dekodowanie javascript base64

MySQL pozwala nam używać w tabeli więcej niż jednej kolumny z ograniczeniem UNIQUE. Może przyjąć A zero wartość, ale MySQL dopuszcza tylko jedną wartość null na kolumnę. Zapewnia uczciwość kolumny lub grupy kolumn w celu przechowywania różnych wartości w tabeli.

Potrzeby unikalnego klucza

  • Jest to przydatne, aby zapobiec zapisywaniu identycznych wartości w kolumnie przez dwa rekordy.
  • Przechowuje tylko odrębne wartości, które utrzymują integralność i niezawodność bazy danych w zakresie dostępu do informacji w zorganizowany sposób.
  • Działa również z kluczem obcym, zachowując niepowtarzalność tabeli.
  • Może zawierać wartość null w tabeli.

Składnia

Do utworzenia unikalnego klucza używana jest następująca składnia MySQL-a .

Jeśli chcemy utworzyć w tabeli tylko jedną unikalną kolumnę kluczową, użyj poniższej składni:

 CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... ); 

Jeśli chcemy utworzyć w tabeli więcej niż jedną unikalną kolumnę kluczową, użyj poniższej składni:

 CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) ); 

Jeśli nie określiliśmy nazwy dla ograniczenia unikalności, MySQL automatycznie generuje nazwę dla tej kolumny. Dlatego zaleca się używanie nazwy ograniczenia podczas tworzenia tabeli.

Wyjaśnienie parametrów

Poniższa tabela szczegółowo wyjaśnia parametry.

Nazwa parametru Opisy
Nazwa tabeli Jest to nazwa tabeli, którą zamierzamy utworzyć.
kol1, kol2 To nazwy kolumn zawarte w tabeli.
nazwa_ograniczenia Jest to nazwa unikalnego klucza.
nazwy_kolumn To nazwy kolumn będą unikalnym kluczem.

Unikalny kluczowy przykład

Poniższy przykład wyjaśnia, w jaki sposób unikalny klucz jest używany w MySQL.

Ta instrukcja tworzy tabelę „ Student2 ' z UNIKALNYM ograniczeniem:

 CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) ); 

Następnie wykonaj zapytania wstawiające wymienione poniżej, aby zrozumieć, jak to działa:

 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'); 

Wyjście

Na poniższym wyjściu widzimy, że to pierwsze WSTAW zapytanie wykonuje się poprawnie, ale druga instrukcja kończy się niepowodzeniem i wyświetla błąd: Zduplikowany wpis „1” dla klucza Stud_ID.

Unikalny klucz MySQL

Jeśli chcesz zdefiniować unikalny klucz on wiele kolumn , użyj zapytania jak poniżej:

 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) ); 

W wynikach widzimy, że unikalna wartość klucza zawiera dwie kolumny Nr rolki I E-mail .

Unikalny klucz MySQL

Aby to sprawdzić, wykonaj następującą instrukcję:

 mysql> SHOW INDEX FROM Student3; 

Tutaj widzimy, że ograniczenie unikalne zostało pomyślnie dodane do tabeli:

Unikalny klucz MySQL

UPUŚĆ Unikalny klucz

Instrukcja ALTER TABLE pozwala nam również usunąć unikalny klucz z tabeli. Do upuszczenia unikalnego klucza używana jest następująca składnia:

 ALTER TABLE table_name DROP INDEX constraint_name; 

W powyższej składni, Nazwa tabeli to nazwa tabeli, którą chcemy zmodyfikować, oraz nazwa_ograniczenia to nazwa unikalnego klucza, który zamierzamy usunąć.

Przykład

Ta instrukcja usunie uc_rollno_email ograniczenie z tabeli na stałe.

 mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email; 

W tym celu możemy wykonać instrukcję SHOW INDEX.

Unikalny klucz za pomocą instrukcji ALTER TABLE

Ta instrukcja pozwala nam dokonać modyfikacji w istniejącej tabeli. Czasami chcemy dodać unikalny klucz do kolumny istniejącej tabeli; następnie ta instrukcja służy do dodania unikalnego klucza dla tej kolumny.

Składnia

Poniżej znajduje się składnia instrukcji ALTER TABLE umożliwiającej dodanie unikalnego klucza:

 ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list); 

Przykład

Ta instrukcja tworzy tabelę „ Studenci 3 ', które nie mają unikalnej kolumny klucza w definicji tabeli.

 CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) ); 

Jeśli po utworzeniu tabeli chcemy dodać do niej unikalny klucz, musimy wykonać instrukcję ALTER TABLE jak poniżej:

 mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email); 

Widzimy wynik, w którym obie instrukcje zostały pomyślnie wykonane.

Unikalny klucz MySQL

Aby to sprawdzić, wykonaj następującą instrukcję:

 mysql> SHOW INDEX FROM Student3; 

Tutaj widzimy, że ograniczenie unikalne zostało pomyślnie dodane do tabeli:

Unikalny klucz MySQL