Postgresql 尝试刷新物化视图时出现错误55000“对象未处于先决条件状态”

Postgresql 尝试刷新物化视图时出现错误55000“对象未处于先决条件状态”,postgresql,Postgresql,我正在尝试运行REFRESH MATERIALIZED VIEW\u search,但PostgreSQL给了我这个错误:错误55000(对象\u不\u处于\u先决条件\u状态):无法同时刷新物化视图“public.recipe\u search” 所讨论的物化视图在psql中如下所示: # \d recipe_search Materialized view "public.recipe_search" Column | Type | Modi

我正在尝试运行
REFRESH MATERIALIZED VIEW\u search,但PostgreSQL给了我这个错误:
错误55000(对象\u不\u处于\u先决条件\u状态):无法同时刷新物化视图“public.recipe\u search”

所讨论的物化视图在
psql
中如下所示:

# \d recipe_search

   Materialized view "public.recipe_search"
  Column  |          Type          | Modifiers
----------+------------------------+-----------
 id       | integer                |
 title    | character varying(255) |
 document | tsvector               |
Indexes:
    "recipe_search_document_index" gin (document)
    "recipe_search_title_trgm_index" gin (title gin_trgm_ops)
为什么我不能同时刷新它?

物化视图需要一个唯一的索引 物化视图不能同时刷新,除非它至少有一个唯一索引,如文档中所述:

同时

。。。仅当物化视图上至少有一个唯一索引(仅使用列名并包含所有行)时,才允许使用此选项;也就是说,它不能索引任何表达式,也不能包含WHERE子句

物化视图需要一个唯一的索引 物化视图不能同时刷新,除非它至少有一个唯一索引,如文档中所述:

同时

。。。仅当物化视图上至少有一个唯一索引(仅使用列名并包含所有行)时,才允许使用此选项;也就是说,它不能索引任何表达式,也不能包含WHERE子句


有人刚刚否决了这个。如果你因为我回答了自己的问题而生气,请看。当我遇到这个问题时,我在网上搜索这个错误消息,没有找到任何有用的信息。在我解决了这个问题之后,我来到这里记录它,以便将来的搜索者能够找到它。这完全符合StackOverflow的使命。自我回答的问题是可以的,但事实上你自己回答它并不影响问题的质量。您的问题缺少重现问题所需的信息。除此之外,搜索错误消息会给我一个提示,这看起来是一个骗局,并且一条评论建议错误消息后面应该有一个提示,这在你的问题中并不存在。(不,我没有投票,至少还没有。在这里发布的想法确实不错。)@hvd我没有看到提示,因为我正在通过触发器和数据库库运行
刷新
——如果我直接通过psql尝试
刷新
,我确实看到了。我可能应该添加视图的
\d
;我已经相应地更新了这个问题。但我想完成的主要任务是启用对该错误消息的搜索以找到解决方案。有人刚刚否决了这一点。如果你因为我回答了自己的问题而生气,请看。当我遇到这个问题时,我在网上搜索这个错误消息,没有找到任何有用的信息。在我解决了这个问题之后,我来到这里记录它,以便将来的搜索者能够找到它。这完全符合StackOverflow的使命。自我回答的问题是可以的,但事实上你自己回答它并不影响问题的质量。您的问题缺少重现问题所需的信息。除此之外,搜索错误消息会给我一个提示,这看起来是一个骗局,并且一条评论建议错误消息后面应该有一个提示,这在你的问题中并不存在。(不,我没有投票,至少还没有。在这里发布的想法确实不错。)@hvd我没有看到提示,因为我正在通过触发器和数据库库运行
刷新
——如果我直接通过psql尝试
刷新
,我确实看到了。我可能应该添加视图的
\d
;我已经相应地更新了这个问题。但我想完成的主要任务是启用对该错误消息的搜索以找到解决方案。