Уникальные записи (индекс UNIQUE)
В MySQL можно создавать поля с уникальными значениями (т.е. одно и тоже значение не будет повторяться в разных записях). Для этого используется индекс UNIQUE.
Код ниже делает в таблице «users» уникальным поле «email».
ALTER TABLE users ADD UNIQUE(email)
Также уникальный индекс можно создать через PHPMyAdmin, как показано на картинке ниже:
Перед тем, как создавать уникальный индекс, сначала надо проверить, что для данного поля нет индекса UNIQUE (иначе будет повторно создан уникальный индекс). Это можно проверить через команду SHOW INDEXES
.
SHOW INDEXES FROM users WHERE Column_name='email' AND NOT Non_unique
При попытке указать уже существующее значение, MySQL вернёт ошибку «#1062 - Дублирующаяся запись по ключу 'email'».
Если у поля задан индекс PRIMARY KEY
, то она автоматически становится уникальной.
Уникальный индекс из нескольких полей
В уникальный индекс можно добавить несколько полей, например user_id и property_id.
/* 1-ый способ (имя индекса задаётся автоматически) */
ALTER TABLE users_properties ADD UNIQUE(user_id, property_id)
/* 2-ой способ (имя индекса задаётся вручную) */
ALTER TABLE users_properties ADD CONSTRAINT IndexName UNIQUE(user_id, property_id)
Теперь в «property_id» могут быть одинаковые значения, но при условии, если в каждой записи будет разный «user_id».
Удалить уникальный индекс
Уникальный индекс удаляется как и любой индекс.
ALTER TABLE users DROP INDEX IndexName
Поддержать автора
Все статьи создаются и поддерживаются одним человеком,
если вам нравится контент, вы можете поддержать автора сайта