gpt4 book ai didi

postgresql - 如何在 PostgresQL 中显示所有无效对象

转载 作者:行者123 更新时间:2023-11-29 12:25:40 25 4
gpt4 key购买 nike

寻找 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com