某些字段的 PostgreSQL 约束

PostgreSQL constraints for some fields

我需要 table 中的所有三个字段同时为空,或者全部都不为空。怎么做? 谢谢。

您需要检查约束

alter table your_table
   add constraint check_nulls
   check (num_nonnulls(col1, col2, col3) in (0,3));

num_nonnulls 计算传递给它的非空值的数量。您的要求是要么全部为空(结果 = 0),要么全部不为空(结果 = 3)