← Все вопросы

Что такое UNIQUE и чем он отличается от PRIMARY KEY?

Задан 2 месяца назад539 просмотров1 ответ
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 — «вот это поле тоже не должно повторяться» (почта, логин, номер телефона).

Ваш ответ

Войдите, чтобы ответить на вопрос.