Уникалният ключ в MySQL е едно поле или комбинация от полета, които гарантират, че всички стойности, които ще се съхраняват в колоната, ще бъдат уникални. Това означава, че колона не може да съхранява дублирани стойности . Например имейл адресите и поименните номера на студентите в таблицата „student_info“ или номерата за контакт на служителите в таблицата „Служител“ трябва да са уникални.
java локална дата и час
MySQL ни позволява да използваме повече от една колона с ограничение UNIQUE в таблица. Може да приеме a нула стойност, но MySQL позволява само една нулева стойност на колона. Осигурява на интегритет на колоната или групата от колони за съхраняване на различни стойности в таблица.
Нужди от уникален ключ
- Полезно е за предотвратяване на двата записа да съхраняват идентични стойности в колоната.
- Той съхранява само различни стойности, които поддържат целостта и надеждността на базата данни за достъп до информацията по организиран начин.
- Работи и с външен ключ за запазване на уникалността на таблица.
- Може да съдържа нулева стойност в таблицата.
Синтаксис
Следният синтаксис се използва за създаване на уникален ключ MySQL .
Ако искаме да създадем само една уникална ключова колона в таблица, използвайте синтаксиса по-долу:
CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... );
Ако искаме да създадем повече от една уникална ключова колона в таблица, използвайте синтаксиса по-долу:
CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) );
Ако не сме посочили името за уникално ограничение, MySQL автоматично генерира име за тази колона. Затова се препоръчва да използвате името на ограничението, докато създавате таблица.
Параметър Обяснение
Следващата таблица обяснява подробно параметрите.
Име на параметъра | Описания |
---|---|
име_на_таблица | Това е името на таблицата, която ще създадем. |
col1, col2 | Това са имената на колоните, които се съдържат в таблицата. |
име_на_ограничение | Това е името на уникалния ключ. |
име(на) на колони | Това е имената на колоните, които ще бъдат уникален ключ. |
Уникален ключов пример
Следващият пример обяснява как уникален ключ, използван в MySQL.
Този израз създава таблица ' Студент2 ' с УНИКАЛНО ограничение:
CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) );
След това изпълнете заявките за вмъкване, изброени по-долу, за да разберете как работи:
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');
Изход
В изхода по-долу можем да видим, че първият INSERT заявка се изпълнява правилно, но вторият израз е неуспешен и дава грешка, която гласи: Дублиран запис „1“ за ключ Stud_ID.
Ако искате да дефинирате уникалния ключ на множество колони , използвайте заявката по-долу:
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) );
В изхода можем да видим, че уникалната стойност на ключа съдържа две колони, които са Roll_No и електронна поща .
За да проверите това, изпълнете следния оператор:
mysql> SHOW INDEX FROM Student3;
Тук можем да видим, че уникалното ограничение е добавено успешно в таблицата:
DROP Уникален ключ
Операторът ALTER TABLE също ни позволява да изпуснем уникалния ключ от таблицата. Следният синтаксис се използва за премахване на уникалния ключ:
ALTER TABLE table_name DROP INDEX constraint_name;
В горния синтаксис, име_на_таблица е името на таблицата, която искаме да модифицираме, и име_на_ограничение е името на уникалния ключ, който ще премахнем.
Пример
Това изявление ще премахне uc_rollno_email ограничение от таблицата постоянно.
mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email;
Можем да изпълним оператора SHOW INDEX за това.
Уникален ключ, използващ оператор ALTER TABLE
Този оператор ни позволява да направим модификацията в съществуващата таблица. Понякога искаме да добавим уникален ключ към колоната на съществуваща таблица; след това този оператор се използва за добавяне на уникален ключ за тази колона.
Синтаксис
Следва синтаксисът на оператора ALTER TABLE за добавяне на уникален ключ:
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list);
Пример
Този израз създава таблица ' Студенти3 ', които нямат уникална ключова колона в дефиницията на таблицата.
CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) );
След като създадем таблица, ако искаме да добавим уникален ключ към тази таблица, трябва да изпълним оператора ALTER TABLE, както е показано по-долу:
mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email);
Можем да видим изхода, когато и двата израза са изпълнени успешно.
За да проверите това, изпълнете следния оператор:
mysql> SHOW INDEX FROM Student3;
Тук можем да видим, че уникалното ограничение е добавено успешно в таблицата: