В этом учебном пособии вы узнаете, как создавать, добавлять и удалять уникальные ограничения в MariaDB с синтаксисом и примерами.
Что является уникальным ограничением в MariaDB?
Уникальное ограничение - это отдельное поле или комбинация полей, которые однозначно определяют запись. Некоторые поля могут содержать нулевые значения, если комбинация значений уникальна.
В чем разница между уникальным ограничением и первичным ключом?
Первичный ключ | Уникальное ограничение |
---|---|
Ни одно из полей, которые являются частью первичного ключа, не может содержать Null значение. | Некоторые поля, являющиеся частью ограничения уникальности, могут содержать Null значения, если комбинация значений уникальна. |
Создать уникальное ограничение - использование оператора CREATE TABLE
Синтаксис создания уникального ограничения с помощью оператора CREATE TABLE в MariaDB:
1 2 3 4 5 6 7 8 |
CREATE TABLE table_name ( 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
- Столбцы, составляющие уникальное ограничение.
Пример
Рассмотрим пример того, как создать уникальное ограничение в MariaDB с помощью оператора CREATE TABLE.
1 2 3 4 5 6 |
CREATE TABLE websites ( website_id INT(11) PRIMARY KEY AUTO_INCREMENT, website_name VARCHAR(25) NOT NULL, server_name VARCHAR(20), creation_date DATE, CONSTRAINT websites_unique UNIQUE (website_name)<br>); |
В этом примере мы создали уникальное ограничение для таблицы websites, которое называется website_unique. Оно состоит только из одного поля - website_name.
Мы также можем создать уникальное ограничение с более чем одним полем, как в примере ниже:
1 2 3 4 5 6 |
CREATE TABLE websites ( website_id INT(11) PRIMARY KEY AUTO_INCREMENT, website_name VARCHAR(25) NOT NULL, server_name VARCHAR(20), creation_date DATE, CONSTRAINT websites_server_unique UNIQUE (website_name, server_name)<br>); |
Создать уникальное ограничение - используя оператор ALTER TABLE
Синтаксис создания уникального ограничения с использованием оператора ALTER TABLE в MariaDB:
1 2 |
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column1, column2, .. column_n); |
- table_name
- Имя таблицы для изменения. Это таблица, к которой вы хотите добавить уникальное ограничение.
- constraint_name
- Имя уникального ограничения.
- column1, column2, .. column_n
- Столбцы, составляющие уникальное ограничение.
Пример
Рассмотрим пример того, как добавить уникальное ограничение к существующей таблице в MariaDB, используя инструкцию ALTER TABLE.
1 2 |
ALTER TABLE websites ADD CONSTRAINT websites_unique UNIQUE (website_name); |
В этом примере мы создали уникальное ограничение для существующей таблицы websites, которое называется website_unique. Оно состоит из поля с именем website_name.
Мы также можем создать уникальное ограничение с более чем одним полем, как в примере ниже:
1 2 |
ALTER TABLE websites ADD CONSTRAINT website_server_unique UNIQUE (website_name, server_name); |
Удалить уникальное ограничение
Синтаксис удаления уникального ограничения в MariaDB:
1 2 |
ALTER TABLE table_name DROP INDEX constraint_name; |
- table_name
- Имя таблицы для изменения. Это таблица, из которой вы хотите удалить уникальное ограничение.
- constraint_name
- Имя уникального ограничения для удаления.
Пример
Рассмотрим пример того, как удалить уникальное ограничение из таблицы в MariaDB.
1 2 |
ALTER TABLE websites DROP INDEX websites_unique; |
В этом примере мы удалили уникальное ограничение на таблицу websites, которое называется website_unique.