Проверяет понимание того, что CHECK constraint является давно существующей возможностью PostgreSQL, а не нововведением последних версий.
CHECK constraint — это ограничение целостности, которое проверяет, что значения в одной или нескольких колонках удовлетворяют заданному логическому условию. Если условие возвращает FALSE, операция вставки или обновления отклоняется. Это стандартная возможность SQL, реализованная в PostgreSQL ещё с версии 6.x (1990-е годы).
CREATE TABLE products (
id SERIAL PRIMARY KEY,
price NUMERIC CHECK (price > 0),
quantity INTEGER CHECK (quantity >= 0)
);Здесь CHECK гарантирует, что цена всегда положительна, а количество не отрицательно. Можно также использовать составные условия:
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
discount NUMERIC,
total NUMERIC,
CHECK (discount < total)
);CHECK constraints широко используются для защиты от некорректных данных на уровне БД, независимо от приложения. Это особенно важно в системах с несколькими клиентами или при интеграции данных. Они дополняют NOT NULL, UNIQUE и FOREIGN KEY, но в отличие от них позволяют задавать произвольные бизнес-правила.
CHECK constraint — это базовая, давно существующая функция PostgreSQL, которую стоит применять всегда, когда нужно гарантировать соблюдение простых бизнес-правил на уровне базы данных. Она не требует дополнительных расширений и работает эффективно.