PostgreSQL проверяет ограничение, если соответствующий столбец обнуляется
У меня есть определение таблицы ниже. Можно ли создать проверочное ограничение, при котором затронутый столбец может быть обнуляемым?
CREATE TABLE task (
# other definition
registered_date timestamp without time zone NOT NULL,
completed_date timestamp without time zone
# constraints
);
Я планировал провести проверку ограничений на completed_date
так что входное значение не будет меньше registered_date
, Это возможно?
1 ответ
Да. Проверочные ограничения принимают значения NULL автоматически. По документации:
Следует отметить, что проверочное ограничение выполняется, если проверочное выражение оценивается как истинное или нулевое значение. Поскольку большинство выражений будут иметь нулевое значение, если какой-либо операнд будет нулевым, они не будут предотвращать нулевые значения в ограниченных столбцах. Чтобы столбец не содержал пустых значений, можно использовать ограничение not-null, описанное в следующем разделе.
Жирный акцент мой.