某些字段的PostgreSQL约束

某些字段的PostgreSQL约束,postgresql,constraints,Postgresql,Constraints,我需要表中的所有三个字段同时为null,否则所有字段都不为null。怎么做? 谢谢。您需要支票约束 alter table your_table add constraint check_nulls check (num_nonnulls(col1, col2, col3) in (0,3)); num\u nonnull统计传递给它的非null值的数量。您的要求是要么全部为空(结果=0),要么全部不为空(结果=3)

我需要表中的所有三个字段同时为null,否则所有字段都不为null。怎么做?
谢谢。

您需要支票约束

alter table your_table
   add constraint check_nulls
   check (num_nonnulls(col1, col2, col3) in (0,3));
num\u nonnull
统计传递给它的非null值的数量。您的要求是要么全部为空(结果=0),要么全部不为空(结果=3)