Проверьте ограничение перед вставкой значения в базу данных - PullRequest
1 голос
/ 24 марта 2020

Я пытаюсь создать таблицу для хранения order_details . В таблице есть столбец status , который может содержать только значение true один раз за каждый order_id, но может содержать значение false несколько раз за order_id.

create table order_details (
    id serial, 
    order_id integer not null, 
    status boolean not null
);

Я хочу сделать это в самой структуре таблицы. Любая помощь будет оценена. Заранее спасибо.

1 Ответ

1 голос
/ 24 марта 2020

Вы можете создать отфильтрованный уникальный индекс:

create unique index on order_details(order_id)
where status;
...