gpt4 book ai didi

sql - 两列上的复合非空约束

转载 作者:行者123 更新时间:2023-12-05 08:37:10 28 4
gpt4 key购买 nike

我想要一个约束,在该约束中我确保至少有两列不为空。基本上,从这两列中,一列必须包含值。

我怎么能有这样的约束呢?在 liquibase 上有可能吗?如果没有,是否可以通过 SQL 或一些 postgres 特定的东西?

最佳答案

我喜欢用 num_nonnulls()为此:

对于至少一个非空列:

check (num_nonnulls(col1, col2) >= 1)

对于恰好一个非空列:

check (num_nonnulls(col1, col2) = 1)

Liquibase 没有针对检查约束的内置更改(至少在社区版本中没有),因此您需要 <sql>为此改变:

<sql> 
alter table the_table
add constraint at_least_one_not_null
check (num_nonnulls(col1, col2) >= 1)
</sql>

关于sql - 两列上的复合非空约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66370232/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com