Postgresql 如何添加将now()与一些参数postgres进行比较的索引

Postgresql 如何添加将now()与一些参数postgres进行比较的索引,postgresql,indexing,Postgresql,Indexing,如何编写一个索引,将当前时间与有效的\u from和有效的\u to进行比较。这样做的目的是,只有当time now()不在valid_from和valid_to之间时,才能创建促销代码。这可能吗 create index idx_allow_same_codes_if_expired on promo_code(code) where now() NOT between valid_from and valid_to ; 但是这不起作用。你不能为它建立索引,索引在这里没有意义 但您可以创

如何编写一个索引,将当前时间与有效的\u from和有效的\u to进行比较。这样做的目的是,只有当time now()不在valid_from和valid_to之间时,才能创建促销代码。这可能吗

create index idx_allow_same_codes_if_expired on promo_code(code) 
 where now() NOT between valid_from and valid_to ;

但是这不起作用。

你不能为它建立索引,索引在这里没有意义

但您可以创建检查约束:

alter table promo_code
   add check (valid_from > now() OR valid_to < now());
alter table促销代码
添加检查(valid_from>now()或valid_to