J'ai eu besoin de Google ceci plusieurs fois, donc je partage mes questions / réponses.
105
Utilisez SHOW INDEX
comme ça:
SHOW INDEX FROM [tablename]
Documents: https://dev.mysql.com/doc/refman/5.0/en/show-index.html
my_table
WHERE Key_name = 'index_to_check';Essayer:
Il vous dira s'il existe un index de quelque nature que ce soit sur une certaine colonne sans qu'il soit nécessaire de connaître le nom donné à l'index. Il fonctionnera également dans une procédure stockée (par opposition à show index)
la source
vous pouvez trouver s'il existe une clé unique dans la table
la source
la source
Utilisez l'instruction suivante: SHOW INDEX FROM your_table
Et puis vérifiez le résultat pour les champs: ligne ["Table"], ligne ["Key_name"]
Assurez-vous que vous écrivez correctement "Key_name"
la source
pour simplement regarder une mise en page des tableaux de la cli. vous feriez
ou
la source
Si vous avez besoin de la fonctionnalité s'il existe un index pour une colonne (ici en premier lieu dans l'ordre) comme fonction de base de données, vous pouvez utiliser / adopter ce code. Si vous voulez vérifier si un index existe quelque soit la position dans un index multi-colonnes, supprimez simplement la partie "AND SEQ_IN_INDEX = 1".
la source
vous pouvez utiliser l'instruction SQL suivante pour vérifier que la colonne donnée sur la table a été indexée ou non
puisque les jointures sont contre INNODB_SYS_ *, les index de correspondance ne proviennent donc que des tables INNODB
la source
Essayez d'utiliser ceci:
la source
Vous ne pouvez pas exécuter une requête show index spécifique car elle générera une erreur si un index n'existe pas. Par conséquent, vous devez saisir tous les index dans un tableau et les parcourir en boucle si vous souhaitez éviter des erreurs SQL.
Voici comment je fais. Je récupère tous les index de la table (dans ce cas,
leads
) puis, dans une boucle foreach, vérifie si le nom de la colonne (dans ce cas,province
) existe ou non.De cette façon, vous pouvez vraiment affiner les attributs d'index. Faites un
print_r
de$res
afin de voir ce que vous pouvez travailler avec.la source