Ограничения CHECK в PostgreSQL позволяют указать, что значение определённого столбца должно удовлетворять логическому выражению (проверке истинности). 12 Если пользователь попытается сохранить в столбце значение, нарушающее ограничения, возникнет ошибка. 1
Пример использования: чтобы ограничить цену товара положительными значениями, можно использовать следующий синтаксис: 1
CREATE TABLE products ( product_no integer, name text, price numeric CHECK (price > 0) ); 1
Ограничению можно присвоить отдельное имя. 1 Это сделает более понятными сообщения об ошибках и позволит ссылаться на ограничение, когда понадобится его изменить. 3 Пример синтаксиса:
CREATE TABLE products ( product_no integer, name text, price numeric CONSTRAINT positive_price CHECK (price > 0) ); 1
Ограничение CHECK может ссылаться на несколько столбцов. 1 Например, если нужно гарантировать, что цена со скидкой будет всегда меньше обычной. 1
Также, если не нужна постоянно поддерживаемая гарантия целостности, а достаточно разовой проверки добавляемой строки по отношению к другим строкам, можно реализовать эту проверку в собственном триггере. 1