PostgreSQL检查约束只允许两个布尔值中的一个为真

时间:2014-01-22 19:14:05

标签: postgresql check-constraints

假设:

CREATE TABLE my_table
(
    my_table_id serial NOT NULL PRIMARY KEY,
    flag_one boolean NOT NULL,
    flag_two boolean NOT NULL
);

有没有办法创建一个检查约束来确保flag_one和flag_two不能同时为true?两者都是假的,其中一个可能是真的。

1 个答案:

答案 0 :(得分:1)

CREATE TABLE my_table
(
    my_table_id serial NOT NULL PRIMARY KEY,
    flag_one boolean NOT NULL,
    flag_two boolean NOT NULL,

    check ( not (flag_one is true and flag_two is true) )
);