Eu precisei pesquisar isso no Google algumas vezes, então estou compartilhando minhas perguntas e respostas.
105
Use SHOW INDEX
assim:
SHOW INDEX FROM [tablename]
Documentos: https://dev.mysql.com/doc/refman/5.0/en/show-index.html
my_table
WHERE Key_name = 'index_to_check';Experimentar:
Ele dirá se existe um índice de qualquer tipo em uma determinada coluna, sem a necessidade de saber o nome dado ao índice. Também funcionará em um procedimento armazenado (ao contrário de mostrar o índice)
fonte
você pode descobrir se existe uma chave única na tabela
fonte
fonte
Use a seguinte instrução: SHOW INDEX FROM your_table
E então verifique o resultado para os campos: linha ["Tabela"], linha ["Nome_chave"]
Certifique-se de escrever "Key_name" corretamente
fonte
para ver apenas um layout de tabelas do cli. você faria
ou
fonte
Se você precisar da funcionalidade se existir um índice para uma coluna (aqui em primeiro lugar na sequência) como uma função de banco de dados, você pode usar / adotar este código. Se você deseja verificar se um índice existe independentemente da posição em um índice de várias colunas, então apenas exclua a parte "AND SEQ_IN_INDEX = 1".
fonte
você pode usar a seguinte instrução SQL para verificar se a coluna fornecida na tabela foi indexada ou não
uma vez que as junções são contra INNODB_SYS_ *, então os índices de correspondência vieram apenas de tabelas INNODB
fonte
Tente usar este:
fonte
Você não pode executar uma consulta de índice de exibição específica porque ela lançará um erro se um índice não existir. Portanto, você deve pegar todos os índices em uma matriz e percorrê-los se quiser evitar erros de SQL.
Veja como eu faço isso. Eu pego todos os índices da tabela (neste caso
leads
) e então, em um loop foreach, verifico se o nome da coluna (neste caso,province
) existe ou não.Dessa forma, você pode realmente restringir os atributos do índice. Faça um
print_r
de$res
para ver com o que você pode trabalhar.fonte