В PostgreSQL, какой самый простой способ применить больше, чем просто существование внешнего ключа?
Например, с учетом следующих таблиц:
create table "bar"
(
bar_id serial primary key,
status boolean not null
)
create table "foo"
(
foo_id serial primary key,
bar_id integer references "bar"
)
Как можно ограничить foo.bar_id
только строками bar
, где status
- это истина?
Я могу представить, как это сделать с помощью функций триггера, но мне кажется, что мне нужно несколько (insert
, update
на foo
; update
, delete
на bar
), поэтому я Хотелось бы узнать, есть ли более удобный метод, возможно, просто использующий ограничения.