当另一列具有特定值时,列上的 NOT NULL 约束

Posted

技术标签:

【中文标题】当另一列具有特定值时,列上的 NOT NULL 约束【英文标题】:NOT NULL constraint on a column when another column has a particular value 【发布时间】:2014-05-25 06:02:11 【问题描述】:
create table test (
    col1 varchar(20),
    col2 varchar(20)
)
    当 col1 的值为“1”时,col2 不能为空。 当 col1 有任何其他值时,col2 可以为 null。

有没有办法根据特定列的值编写检查约束?

【问题讨论】:

【参考方案1】:

你可以写一个表级的约束,当然。

CREATE TABLE test (
    col1 VARCHAR(20),
    col2 VARCHAR(20),
    CHECK (col1 != '1' OR col2 IS NOT NULL)
);

要么col1 不是'1'(col2 可以是任何东西),要么col1'1'(并且col2 不能为空)。

请参阅third example in the manual。

【讨论】:

以上是关于当另一列具有特定值时,列上的 NOT NULL 约束的主要内容,如果未能解决你的问题,请参考以下文章

当另一个框在excel(VBA)中具有特定值时,如何引用msgBox中的单元格。

基于另一列的最大值的列上的 SQL 内连接 [重复]

在执行 Select 查询时,如何忽略 Postgresql 中某列具有特定值的数据行?

熊猫在一列上分组,另一列上的最大日期python

具有特定列上的子列的数据网格视图

基于另一列中的值的一列上的pyspark滞后函数