Constraints

Базовый SQL
≈ 1 мин чтения

База данных тоже проверяет правила

Constraint — это правило, которое база данных проверяет при изменении данных. Если новое значение нарушает ограничение, операция не должна тихо сохранить некорректную строку — СУБД отклоняет её.

CREATE TABLE users (
    id INTEGER,
    email VARCHAR(200) NOT NULL UNIQUE,
    age INTEGER CHECK (age >= 0)
);

NOT NULL требует наличие значения, UNIQUE запрещает повторение одинаковых значений в соответствующем ограничении, а CHECK проверяет заданное логическое условие.

Почему правила лучше закреплять в базе

Приложение тоже может проверять данные, но база остаётся последней точкой хранения. Если критичное правило существует только в одном участке кода, другой сервис, скрипт или ошибочная команда могут его обойти. Ограничение делает правило частью самой схемы данных.

Ограничения описывают целостность данных, а не всю бизнес-логику. Простые и устойчивые правила вроде обязательности значения или допустимого диапазона хорошо подходят для базы. Сложные бизнес-сценарии обычно остаются на уровне приложения.