SHOW INDEXES

Lista todos os índices em sua conta para os quais você tem privilégios de acesso.

Consulte também:

CREATE HYBRID TABLE , CREATE INDEX , DROP INDEX , DROP TABLE , DESCRIBE TABLE , SHOW HYBRID TABLES

Sintaxe

SHOW [ TERSE ] INDEXES
  [ LIKE '<pattern>' ]
  [ IN { ACCOUNT | DATABASE [ <database_name> ] | SCHEMA [ <schema_name> ] | TABLE | TABLE <table_name> } ]
  [ STARTS WITH '<name_string>' ]
  [ LIMIT <rows> [ FROM '<name_string>' ] ]
Copy

Parâmetros

TERSE

Retorna apenas um subconjunto das colunas de saída:

  • created_on

  • name

  • kind

  • database_name

  • schema_name

LIKE 'pattern'

Opcionalmente, filtra a saída do comando pelo nome do objeto. O filtro utiliza correspondência de padrão que não diferencia maiúsculas e minúsculas, com suporte para caracteres curinga SQL (% e _).

Por exemplo, os seguintes padrões retornam os mesmos resultados:

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...

. padrão: sem valor (nenhuma filtragem é aplicada à saída).

IN { ACCOUNT | DATABASE [ database_name ] | SCHEMA [ schema_name ] | TABLE | TABLE table_name }

Filtra a saída pelo banco de dados, esquema, tabela ou conta especificado.

Se você especificar a palavra-chave ACCOUNT, então o comando recuperará os registros de todos os esquemas em todos os bancos de dados da conta atual.

Se você especificar a palavra-chave DATABASE, então:

  • Se você especificar um db_name, então o comando recupera registros para todos os esquemas do banco de dados especificado.

  • Se você não especificar um db_name, então:

    • Se houver um banco de dados atual, então o comando recuperará os registros de todos os esquemas do banco de dados atual.

    • Se não houver um banco de dados atual, então o comando recuperará registros para todos os bancos de dados e esquemas da conta.

Se você especificar a palavra-chave SCHEMA, então:

  • Se você especificar um nome de esquema qualificado (por exemplo, my_database.my_schema), então o comando recuperará registros para o banco de dados e esquema especificado.

  • Se você especificar um schema_name não qualificado, então:

    • Se houver um banco de dados atual, então o comando recupera os registros para o esquema especificado no banco de dados atual.

    • Se não houver um banco de dados atual, então o comando exibe o erro SQL compilation error: Object does not exist, or operation cannot be performed.

  • Se você não especificar um schema_name, então:

    • Se houver um banco de dados atual, então:

      • Se houver um esquema atual, então o comando recupera registros para o esquema atual no banco de dados atual.

      • Se não houver um esquema atual, então o comando recupera os registros de todos os esquemas no banco de dados atual.

    • Se não houver um banco de dados atual, então o comando recupera os registros de todos os bancos de dados e todos os esquemas da conta.

Se você especificar a palavra-chave TABLE sem um table_name, então:

  • Se houver um banco de dados atual, então:

    • Se houver um esquema atual, então o comando recupera registros para o esquema atual no banco de dados atual.

    • Se não houver um esquema atual, então o comando recupera os registros de todos os esquemas no banco de dados atual.

  • Se não houver um banco de dados atual, então o comando recupera os registros de todos os bancos de dados e todos os esquemas da conta.

Se você especificar um <nome_tabela> (com ou sem a palavra-chave TABLE), então:

  • Se você especificar um <nome_tabela> totalmente qualificado (por exemplo, my_database_name.my_schema_name.my_table_name), então o comando recuperará todos os registros para a tabela especificada.

  • Se você especificar um esquema qualificado <nome_tabela> (por exemplo, my_schema_name.my_table_name), então:

    • Se houver um banco de dados atual, o comando recupera todos os registros da tabela especificada.

    • Se não existir um banco de dados atual, então o comando exibe um erro semelhante a Cannot perform SHOW <tipo_objeto>. This session does not have a current database....

  • Se você especificar um <nome_tabela não qualificado>, então:

    • Se houver um banco de dados atual e um esquema atual, então o comando recupera os registros para a tabela especificada no esquema atual do banco de dados atual.

    • Se não existir um banco de dados atual ou se não existir um esquema atual, então o comando exibirá um erro semelhante a: SQL compilation error: <objeto> does not exist or not authorized..

Padrão: depende se a sessão tem ou não um banco de dados em uso no momento:

  • Banco de dados: DATABASE é o padrão (ou seja, o comando retorna os objetos nos quais você tem privilégios para visualizar no banco de dados).

  • Sem banco de dados: ACCOUNT é o padrão (ou seja, o comando retorna os objetos que você tem privilégios de visualização em sua conta).

STARTS WITH 'name_string'

Opcionalmente, filtra a saída do comando com base nos caracteres que aparecem no início do nome do objeto. A cadeia de caracteres deve ser delimitada entre aspas simples e há distinção entre maiúsculas e minúsculas.

Por exemplo, as seguintes cadeias de caracteres retornam resultados diferentes:

... STARTS WITH 'B' ...
... STARTS WITH 'b' ...

. Padrão: sem valor (nenhuma filtragem é aplicada à saída)

LIMIT rows [ FROM 'name_string' ]

Opcionalmente, limita o número máximo de linhas retornadas, ao mesmo tempo em que permite a «paginação» dos resultados. O número real de linhas retornadas pode ser menor que o limite especificado. Por exemplo, o número de objetos existentes é menor que o limite especificado.

A subcláusula opcional FROM 'name_string' serve efetivamente como um “cursor” para os resultados. Isso permite obter o número especificado de linhas seguindo a primeira linha cujo nome do objeto corresponde à cadeia de caracteres especificada:

  • A cadeia de caracteres deve ser delimitada entre aspas simples e há distinção entre maiúsculas e minúsculas.

  • A cadeia de caracteres não precisa incluir o nome completo do objeto; também é permitido usar nomes parciais.

Padrão: nenhum valor (nenhum limite é aplicado à saída)

Nota

Para comandos SHOW que oferecem suporte às cláusulas FROM 'name_string' e STARTS WITH 'name_string', você pode combinar ambas as cláusulas na mesma instrução. No entanto, ambas as condições devem ser cumpridas ou elas se cancelam mutuamente e nenhum resultado é retornado.

Além disso, os objetos são devolvidos em ordem lexicográfica por nome, portanto FROM 'name_string' só retorna linhas com um valor lexicográfico maior que as linhas retornadas por STARTS WITH 'name_string'.

Por exemplo:

  • ... STARTS WITH 'A' LIMIT ... FROM 'B' não retornaria nenhum resultado.

  • ... STARTS WITH 'B' LIMIT ... FROM 'A' não retornaria nenhum resultado.

  • ... STARTS WITH 'A' LIMIT ... FROM 'AB' retornariam resultados (se alguma linha corresponder às cadeias de caracteres de entrada).

Notas de uso

  • Este comando só pode ser usado para descartar um índice secundário. Para descartar um índice usado para impor restrição(ões) de chave exclusiva e/ou estrangeira, use o comando ALTER TABLE.

  • Para usar um índice secundário em uma tabela híbrida, o privilégio SELECT deve ser concedido a essa tabela.

Saída

Coluna

Descrição

created_on

Data e hora em que o índice foi criado.

name

Nome do índice.

is_unique

Se o índice é um índice exclusivo.

columns

Lista de colunas indexadas.

included_columns

Lista de colunas abordadas.

table

Nome da tabela.

database_name

Banco de dados no qual o índice está armazenado.

schema_name

Esquema no qual o índice está armazenado.

owner

Função proprietária do índice.

owner_role_type

Tipo da função do proprietário.