Postgres基于唯一约束的列值

时间:2020-07-06 06:42:32

标签: postgresql

CREATE TABLE employee (
    id varchar(40) NOT NULL,
    legacy_id varchar(40) NOT NULL,
    short_name varchar(255) NULL,   
    is_deleted bool NOT NULL DEFAULT false,
    CONSTRAINT employee_pkey PRIMARY KEY (id)
)

我想为这样的独特约束做计划

表必须具有这些约束

1. Unique constraint is required on column 'legacy_id' and 'is_deleted = false'. Its okay to have multiple values with legacy_id and is_deleted = true. 

有没有办法实现这一目标

1 个答案:

答案 0 :(得分:1)

您不能为此设置约束,但是部分唯一索引也可以做到:

CREATE UNIQUE INDEX ON employee (legacy_id)
   WHERE is_deleted;
相关问题