标签: postgresql constraints
我需要表中的所有三个字段一次为空,或者所有都不为空。怎么做? 谢谢。
答案 0 :(得分:2)
您需要检查约束
alter table your_table add constraint check_nulls check (num_nonnulls(col1, col2, col3) in (0,3));
num_nonnulls计算传递给它的非空值的数量。您的要求是要么全部都不为null(结果= 0),要么全部都不为null(结果= 3)
num_nonnulls