Какие знаешь ограничения уникальности в БД

Python Middle Без компании
Какие знаешь ограничения уникальности в БД
Ответы
В БД есть несколько типов ограничений уникальности: - **UNIQUE** – гарантирует, что все значения в столбце (или комбинации столбцов) уникальны. ``` CREATE TABLE users ( email VARCHAR(255) UNIQUE, username VARCHAR(50) UNIQUE ); ``` - **PRIMARY KEY** – автоматически подразумевает `UNIQUE` и `NOT NULL`. ``` CREATE TABLE products ( id SERIAL PRIMARY KEY, name VARCHAR(100) ); ``` - **UNIQUE INDEX** – создаёт индекс для ускорения проверки уникальности. ``` CREATE UNIQUE INDEX idx_employee_code ON employees(employee_code); ``` - **Составной UNIQUE** – уникальность по комбинации столбцов. ``` ALTER TABLE orders ADD CONSTRAINT unique_order_user UNIQUE (order_id, user_id); ``` **Нюансы:** - `NULL` значения считаются уникальными (могут дублироваться, если столбец не `NOT NULL`). - Вставка дубликата вызывает ошибку `IntegrityError` (в SQLAlchemy – `sqlalchemy.exc.IntegrityError`). - В PostgreSQL можно создать частичный уникальный индекс (`WHERE` условие).