如果相关列可以为空,则PostgreSQL检查约束

时间:2014-03-12 05:12:17

标签: sql postgresql database-design check-constraints

我有下面的示例表定义。是否可以创建一个检查约束,其中受影响的列可以为空?

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 个答案:

答案 0 :(得分:2)

是。检查约束自动接受NULL值。 Per documentation:

  

应该注意,如果检查,则满足检查约束   expression的计算结果为true或null值。由于大多数表达   如果任何操作数为null,它将评估为null值,它们不会   防止受约束列中的空值。确保一个   column不包含空值,描述了非null约束   在下一节中可以使用。

大胆强调我的。