首页 > 解决方案 > 刷新物化视图产生错误:无法创建唯一索引

问题描述

我有一个物化视图my_view,它从不同的表中选择值。

我在其中一个表中插入了几行并尝试my_view通过运行查询来刷新

refresh materialized view my_view;

但得到以下错误

ERROR:  could not create unique index "my_view_id_idx"
DETAIL:  Key (id)=(20477871) is duplicated.
SQL state: 23505

所以我从表中删除了行并再次刷新了视图。它仍然显示相同的错误。我确定表中没有重复的行,我已经删除了表中的行

标签: postgresql

解决方案


你一定忘了一三行。

试试这个查询来测试:

SELECT id, count(*)
FROM (/* materialized view definition query */) AS q
GROUP BY id
HAVING count(*) > 1;

这将向您显示问题id


推荐阅读