В этом учебном пособии вы узнаете, как создавать, добавлять и удалять Unique Constraints (уникальные ограничения) в MySQL с синтаксисом и примерами.
Описание
Unique Constraints - это одно поле или комбинация полей, которые определяют уникальную запись. Некоторые из полей могут содержать нулевые значения, если комбинация значений уникальна.
В чем разница между Unique Constraints и Primary Key?
Primary Key
Поля, которые являются частью первичного ключа, не могут содержать значение Null.
Unique Constraints
Некоторые из полей, которые являются частью уникального ограничения, могут содержать значения Null, если комбинация значений уникальна.
Создание Unique Constraint c использованием оператора CREATE TABLE
Синтаксис для создания уникального ограничения с использованием оператора CREATE TABLE в MySQL:
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
...
CONSTRAINT constraint_name UNIQUE (uc_col1, uc_col2, ... uc_col_n)
);
Параметры или аргументы
table_name - имя таблицы, которую вы хотите создать.
column1, column2 - столбцы, которые вы хотите создать в таблице.
constraint_name - имя уникального ограничения.
uc_col1, uc_col2, ... uc_col_n - столбцы, которые составляют уникальное ограничение.
Пример
Рассмотрим пример создания уникального ограничения в MySQL с помощью оператора CREATE TABLE.
1 2 3 4 5 6 7 8 |
CREATE TABLE contacts ( contact_id INT(11) PRIMARY KEY AUTO_INCREMENT, reference_number INT(11) NOT NULL, last_name VARCHAR(30) NOT NULL, first_name VARCHAR(25), birthday DATE, CONSTRAINT contacts_unique UNIQUE (contact_id) ); |
В этом примере мы создали уникальное ограничение в таблице contacts, называемое contact_unique. Оно состоит только из одного поля - contact_id.
Мы могли бы также создать уникальное ограничение с несколькими полями, как в приведенном ниже примере:
1 2 3 4 5 6 7 8 |
CREATE TABLE contacts ( contact_id INT(11) PRIMARY KEY AUTO_INCREMENT, reference_number INT(11) NOT NULL, last_name VARCHAR(30) NOT NULL, first_name VARCHAR(25), birthday DATE, CONSTRAINT contacts_unique UNIQUE (last_name, first_name) ); |
Создание Unique Constraint с использованием оператора ALTER TABLE
Синтаксис для создания уникального ограничения с использованием оператора ALTER TABLE в MySQL:
ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... column_n);
Параметры или аргументы
table_name - имя таблицы для изменения. Это таблица, к которой вы хотите добавить уникальное ограничение.
constraint_name - имя уникального ограничения.
column1, column2, ... column_n - столбцы, которые составляют уникальное ограничение.
Пример
Рассмотрим пример того, как добавить уникальное ограничение в существующую таблицу в MySQL, используя оператор ALTER TABLE.
1 2 |
ALTER TABLE contacts ADD CONSTRAINT contacts_unique UNIQUE (reference_number); |
В этом примере мы создали уникальное ограничение для существующей таблицы contacts, называемое contact_unique. Оно состоит из поля, с именем reference_number.
Мы могли бы также создать уникальное ограничение с несколькими полями, как в приведенном ниже примере:
1 2 |
ALTER TABLE contacts ADD CONSTRAINT contact_name_unique UNIQUE (last_name, first_name); |
Удаление Unique Constraint
Синтаксис для удаления уникального ограничения в MySQL:
DROP INDEX constraint_name;
Параметры или аргументы
table_name - имя таблицы для изменения. Это таблица, из которой вы хотите удалить уникальное ограничение.
constraint_name - имя уникального ограничения для удаления.
Пример
Рассмотрим пример того, как удалить уникальное ограничение из таблицы в MySQL.
1 2 |
ALTER TABLE contacts DROP INDEX contacts_unique; |
В этом примере мы удаляем уникальное ограничение в таблице contacts, называемое contact_unique.