当前位置: 首页 > 面试题库 >

检查PostgreSQL中是否存在索引

桓嘉谊
2023-03-14
问题内容

我知道如何创建索引

CREATE INDEX ix_dsvtable
  ON public."DsVTable"
  USING btree
  (dind, sec, regind, datind);

以及如何检查索引是否已存在?

我需要检查它们的存在并创建它们(如果还不存在)。


问题答案:

您可以使用以下查询获取索引列表,它们的表和列:

select
    t.relname as table_name,
    i.relname as index_name,
    a.attname as column_name
from
    pg_class t,
    pg_class i,
    pg_index ix,
    pg_attribute a
where
    t.oid = ix.indrelid
    and i.oid = ix.indexrelid
    and a.attrelid = t.oid
    and a.attnum = ANY(ix.indkey)
    and t.relkind = 'r'
   -- and t.relname like 'mytable'
order by
    t.relname,
    i.relname;

从那里,您可以按索引名称或所涉及的列检查是否存在,并决定创建/跳过索引。



 类似资料:
  • 问题内容: 我想在elasticsearch中检查索引是否存在。如果不存在,则应创建索引并执行其他功能。我试图找到一个解决方案,但是没有找到完美的解决方案。任何人都可以有解决此问题的任何解决方案。 我正在使用Elasticsearch库。 问题答案: 根据索引操作和源代码,以下应该工作

  • 问题内容: 我想验证将触发器添加到某些表的数据库迁移的正确性。我正在使用sqitch,因此我想找到一种使用SQL查询进行检查的方法。我相信postgres系统表应该有可能,但是我目前找不到实现此目的的方法。 问题答案: 使用目录pg_trigger。 一个简单的表查询: 使用得到触发功能的来源: 函数用法示例: 在Sqitch脚本中,您可以使用匿名代码块,例如:

  • 问题内容: 在Swift中,是否有任何方法可以检查数组中是否存在索引而不会引发致命错误? 我希望我可以做这样的事情: 但是我明白了 致命错误:数组索引超出范围 问题答案: Swift中的一种优雅方式:

  • 问题内容: 我敢肯定有一种明显的方法可以做到这一点,但现在还不能想到任何光滑的东西。 基本上不是引发异常,而是要获取或查看pandas索引中是否存在值。 我现在工作的是以下内容 问题答案: 这应该可以解决问题

  • 问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。

  • 问题内容: 我正在尝试检查$ _POST是否存在,如果存在,则在另一个字符串中打印它,如果不存在,则根本不打印。 像这样的东西: 任何帮助将是巨大的! 问题答案: