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