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

时间:2014-05-25 06:02:11

标签: postgresql check-constraints

create table test (
    col1 varchar(20),
    col2 varchar(20)
)
  1. 当col1具有值' 1'时,col2不能为空。
  2. 当col1具有任何其他值时,col2可以为null。
  3. 有没有办法根据特定列的值编写检查约束?

1 个答案:

答案 0 :(得分:5)

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

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