частичное ограничение ИСКЛЮЧИТЬ ИСПОЛЬЗОВАНИЕ - PullRequest
1 голос
/ 29 апреля 2020

У меня есть следующее ограничение:

ALTER TABLE my_table
  ADD CONSTRAINT no_overlap EXCLUDE USING gist (
    product_id WITH =,
    applicable_period WITH &&
  )

Теперь я понял, что это следует проверять только условно, например:

ALTER TABLE my_table
  ADD CONSTRAINT no_overlap EXCLUDE USING gist (
    product_id WITH =,
    applicable_period WITH &&
  )
  WHERE my_table.user_id IS NULL

Возможно ли это, а как иначе я могу этого добиться? эффективным / рекомендованным способом? (Я мог бы добавить триггер, но я надеюсь, что есть более элегантные / эффективные подходы).

Должен ли я прибегнуть к разбиению таблицы? Спасибо

1 Ответ

1 голос
/ 29 апреля 2020

Согласно инструкции , вам просто нужны скобки:

ALTER TABLE my_table
  ADD CONSTRAINT no_overlap 
  EXCLUDE USING gist (product_id WITH =, applicable_period WITH &&)
WHERE (user_id is null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...