У меня есть вопрос относительно ограничения (я думаю, уникального или исключения в данном случае). Я не могу понять этот простой случай:
Например, у меня есть эта упрощенная версия таблицы:
create table user
(
id serial not null
username varchar(30) not null
constraint user_username_key
unique,
is_active boolean not null,
company_id integer not null
constraint company_user_company_company_company_id
references company_company
deferrable initially deferred
Я хотел бы создать такое ограничение, чтобы удовлетворить следующие условия:
Если у нас есть хотя бы одна (или, возможно, несколько записей), ссылающаяся на одно и то же company_id
(скажем, = 3
), то мы должны (оно должно существовать) иметь одно и только одно имя пользователя, оканчивающееся на «-support
» (позволяет произнесите «user1-support
») с помощью is_active = True
.
Неправильные сценарии:
• we have one or more records but there are no any username that ends on `‘-support’` amoung this records
• we have one or more records and we have multiple usernames that ends on `‘-support’` amoung this records
Если у нас есть только одна запись — тогда имя пользователя должно заканчиваться на ‘-support’
Спасибо
Извините, если вопрос наивен
постгрес 11 версия