Ограничение UNIQUE гарантирует, что почти все элементы в поле отличаются друг от друга. Для поля или группы полей пределы УНИКАЛЬНОГО и ПЕРВИЧНОГО КЛЮЧА взаимно гарантируют индивидуальность. Тем не менее, у нас может быть несколько УНИКАЛЬНЫХ ограничений в каждой таблице, хотя вместо этого для каждой таблицы может быть установлено одно ограничение ПЕРВИЧНОГО КЛЮЧА. Давайте узнаем это, попробовав несколько примеров.
Уникальное ограничение через Workbench:
Прежде всего, мы должны узнать, как добавить уникальные ограничения в таблицу при использовании MySQL Workbench 8.0. Откройте недавно установленную MySQL Workbench 8.0 и подключите его к базе данных.
В области запроса вы должны написать следующую команду, чтобы создать таблицу «Человек». В этой таблице 4 столбца с одним первичным ключом. Мы должны указать один уникальный столбец. Как видите, мы очистили столбец Id от столбца UNIQUE:
>> СОЗДАТЬ ТАБЛИЦУ Человек (ID int PRIMARY KEY NOT NULL, LastName varchar (255) NOT NULL, FirstName varchar (255), Age int, UNIQUE (ID));
Теперь таблица «Человек» создана со своим «УНИКАЛЬНЫМ» столбцом «ID». Таблицу можно найти в разделах «Навигатор» и «Схемы», а в списке «Таблицы».
При вставке записей, когда вы нажимаете на кнопку «Применить», он просматривает вставленные записи, как показано ниже. Вы можете видеть, что у нас есть одна дублированная запись в строках 3 и 4 с одинаковым «ID». Нажмите кнопку «Применить», чтобы применить изменения.
На изображении ниже генерируется ошибка, связанная с дублированием столбца «ID», который представляет собой значение «13».
После исправления записи, когда вы примените изменения, она будет работать правильно.
Уникальное ограничение через оболочку командной строки:
В оболочке командной строки MySQL мы будем добавлять УНИКАЛЬНЫЕ ключи в один или несколько столбцов. Сначала откройте командную строку, чтобы получить представление о каждом из приведенных ниже примеров. Введите свой пароль, чтобы использовать командную оболочку.
Пример 01: в одном столбце
В этом синтаксисе, как и в спецификации столбца, мы используем УНИКАЛЬНЫЙ термин, к которому вы хотите применить закон уникальности. После того, как мы вставим или изменим значение, которое создает дубликаты в конкретном столбце, MySQL отклонит изменение, и также будет выдано исключение. В этом конкретном пределе будет ограничение на столбцы. И вы можете использовать это для реализации уникального правила одного поля. Вот синтаксис ключа UNIQUE, состоящего из одного столбца:
>> СОЗДАТЬ ТАБЛИЦУ имя_таблицы (тип данных col UNIQUE, тип данных col);Создадим в базе данных data таблицу «поставщик» с тремя столбцами в ней. Столбец «ID» определен как «УНИКАЛЬНЫЙ».
>> СОЗДАТЬ ТАБЛИЦУ данные.поставщик (идентификатор INT AUTO_INCREMENT NOT NULL UNIQUE, имя VARCHAR (50) NOT NULL, область VARCHAR (50));
При проверке вы можете увидеть, что в таблице еще нет записей.
>> ВЫБРАТЬ * ИЗ данных.поставщик;
Вставим записи в таблицу. Первая запись будет плавно вставлена в таблицу, как показано ниже.
Вторая запись будет вставлена снова плавно, поскольку в столбце «ID» нет повторяющихся значений. С другой стороны, он принимает то же значение, что и в первом запросе в столбце «Площадь».
При вставке третьей записи мы предоставили повторяющееся значение «1», как мы предоставили в первом операторе вставки. Это приведет к ошибке, что столбец «ID» получает повторяющееся значение, как показано на изображении ниже.
При повторной проверке вы можете увидеть, что в таблице есть только записи первых двух операторов вставки. Пока нет записи из третьего оператора вставки.
>> ВЫБРАТЬ * ИЗ данных.поставщик;
Пример 02: На нескольких столбцах
В этом формате после УНИКАЛЬНОГО термина мы применяем набор столбцов, разделенных запятыми, в скобках. Состав значений в поле col1 и col2 используется MySQL для определения уникальности.
>> СОЗДАТЬ ТАБЛИЦУ имя_таблицы (тип данных col1, тип данных col2, UNIQUE (col1, col2));Мы создали таблицу «министр» в базе данных «данные» с пятью столбцами. Столбец «ID» определяется как «УНИКАЛЬНЫЙ» и «ОСНОВНОЙ». Ключевое слово «CONSTRAINT» используется для обозначения уникального ключевого ограничения как «uc_add_sal». Ключевое слово «UNIQUE» используется для определения ограничения UNIQUE для столбцов, указанных в скобках, e.грамм., Адрес и «Заработная плата». Теперь у нас есть всего три столбца с ограничением UNIQUE.
>> СОЗДАТЬ ТАБЛИЦУ данные.министр (Mid INT AUTO_INCREMENT PRIMARY KEY NOT NULL UNIQUE, имя VARCHAR (50) NOT NULL, адрес VARCHAR (50), Job VARCHAR (50), Salary VARCHAR (50), CONSTRAINT uc_add_sal UNIQUE (Address, Salary));
Проверив таблицу, вы увидите, что она сейчас пуста.
>> ВЫБРАТЬ * ИЗ данных.министр;
Вставим в него несколько записей. Первая запись будет успешно добавлена в таблицу, потому что это первая строка и нет строки, с которой можно было бы сопоставить.
Введите другую уникальную запись без каких-либо повторяющихся значений в любом столбце, как показано ниже.
Это не влияет на то, когда мы вводим повторяющиеся значения для столбцов, для которых нет ограничения «UNIQUE». Взгляните на запрос ниже. Он имеет повторяющееся значение в столбцах «Имя» и «Работа». Он работает правильно, потому что для этих двух столбцов не определено ограничение «UNIQUE».
С другой стороны, когда мы вставляем повторяющееся значение, e.грамм., «13» и «Равалпинди», будет выдана ошибка, как показано ниже. Это потому, что «13» и «Равалпинди» были указаны ранее.
При проверке у нас в таблице всего три записи, вставленные первыми тремя запросами.
>> ВЫБРАТЬ * ИЗ данных.министр;
Заключение:
Мы аккуратно выполнили все примеры определения ограничений UNIQUE для одного и нескольких столбцов при использовании MySQL Workbench 8.0 и клиентская оболочка командной строки MySQL. Надеюсь, у вас не возникнет проблем при решении задач, связанных с УНИКАЛЬНЫМИ ключами.