postgresql - 刷新物化视图产生错误:无法创建唯一索引
问题描述
我有一个物化视图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
所以我从表中删除了行并再次刷新了视图。它仍然显示相同的错误。我确定表中没有重复的行,我已经删除了表中的行
解决方案
你一定忘了一三行。
试试这个查询来测试:
SELECT id, count(*)
FROM (/* materialized view definition query */) AS q
GROUP BY id
HAVING count(*) > 1;
这将向您显示问题id
。