PostgreSQL中如何确认物化视图上的索引是否创建成功?
查看PostgreSQL物化视图索引的方法
你可以用以下任意一种方式验证索引是否创建成功:
- 方法1:使用psql客户端快捷命令
如果你是通过psql工具连接数据库,直接执行以下命令即可查看指定物化视图的全量元信息,其中就包含所有关联的索引:
\d matview
输出结果的索引区块会明确显示你创建的matview_key索引的类型、关联字段等信息,可直接确认是否为唯一联合索引。
- 方法2:查询系统视图
pg_indexes
该方法适配所有数据库连接客户端,执行如下SQL即可查询指定物化视图上的所有索引:
SELECT indexname, indexdef FROM pg_indexes WHERE tablename = 'matview' -- 如果你使用的不是public schema,补充对应schema筛选条件即可 AND schemaname = 'public';
如果返回结果中存在indexname为matview_key的记录,且indexdef字段内容和你执行的创建语句一致,就说明索引创建成功。
- 方法3:精准查询目标索引状态
如果你只想单独验证你创建的这个唯一索引是否存在,可执行如下SQL:
SELECT relname AS index_name, EXISTS( SELECT 1 FROM pg_index WHERE indexrelid = pg_class.oid AND indisunique = TRUE ) AS is_unique_index FROM pg_class WHERE relname = 'matview_key' AND relkind = 'i';
如果返回有结果,且is_unique_index值为t(true),即可确认索引创建成功。
内容的提问来源于stack exchange,提问作者aerijman
相关产品推荐
相关产品推荐

