← Все вопросы
Что такое UNIQUE и чем он отличается от PRIMARY KEY?
5
Видел, что у столбца можно написать UNIQUE. Но ведь есть PRIMARY KEY, который тоже про уникальность. В чём разница и зачем нужен отдельный UNIQUE, например на столбце email?
1 ответ
9
✓ Принятый ответ — помог автору
UNIQUE — это правило (ограничение): «в этом столбце не может быть двух одинаковых значений». База сама не даст вставить повтор.
Пример — чтобы у двух пользователей не было одинаковой почты:
CREATE TABLE users (
id INTEGER PRIMARY KEY,
email TEXT UNIQUE,
name TEXT
);
Теперь второй INSERT с тем же email вызовет ошибку — и это хорошо, дубликаты не пролезут.
Чем отличается от PRIMARY KEY:
- PRIMARY KEY — главный «опознавательный» столбец строки, он тоже уникальный, но в таблице он один, и в нём нельзя NULL.
- UNIQUE можно повесить на несколько столбцов, и в нём (обычно) допустим один NULL.
Грубо: PRIMARY KEY — главный паспорт строки, а UNIQUE — «вот это поле тоже не должно повторяться» (почта, логин, номер телефона).
Ваш ответ
Войдите, чтобы ответить на вопрос.