В чем разница между уникальным индексом и первичным ключом
Python
Senior
Okko
В чем разница между уникальным индексом и первичным ключом
Ответы
**Уникальный индекс** гарантирует, что все значения в индексированном столбце (или комбинации столбцов) уникальны, но допускает `NULL` (если не указано `NOT NULL`).
**Первичный ключ (PRIMARY KEY)** — это частный случай уникального индекса, который:
- Не допускает `NULL` (всегда `NOT NULL`).
- Может быть только один на таблицу.
- Часто используется для связей (FOREIGN KEY).
**Пример:**
```
-- Уникальный индекс (допускает NULL)
CREATE TABLE users (
email VARCHAR(255),
UNIQUE INDEX (email)
);
-- Первичный ключ (запрещает NULL)
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100)
);
```
**Вывод:**
- Первичный ключ = уникальный индекс + `NOT NULL` + ограничение "один на таблицу".
- Уникальный индекс гибче (может быть несколько, может содержать `NULL`).