寻找 View 我可以列出 PostgreSQL 中的所有“无效”对象。 在 Oracle 中,我们可以使用 dab_objects.status 列,但我不确定在 PostgreSQL 中是否有一种简单的方法可以做到这一点。
也许,我可以用下面的代码检查无效索引。 我如何为其他对象执行此操作?
SELECT pg_class.relname
FROM pg_class, pg_index
WHERE pg_index.indisvalid = false
AND pg_index.indexrelid = pg_class.oid;
最佳答案
我认为您不必检查任何其他内容,因为其他对象在 PostgreSQL 中不会变得无效。
Oracle 和 PostgreSQL 在这方面的工作方式截然不同:
在 Oracle 中,您始终可以
ALTER
对象(例如表),即使存在依赖对象(例如 View )也是如此。然后依赖对象变得无效并且必须重新编译。在 PostgreSQL 中,您不能
ALTER
具有依赖对象的对象,而这种方式会使这些依赖对象无效。您必须删除并重新创建相关对象。
失败的 CREATE INDEX
命令可能会留下无效的索引。
关于postgresql - 如何在 PostgresQL 中显示所有无效对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39114922/