J'ai eu besoin de Google à quelques reprises, alors je partage ma Q/R.Comment vérifier si un index existe sur un champ de table dans MySQL?
Répondre
Utilisez SHOW INDEX
comme ceci:
SHOW INDEX FROM [tablename]
Docs: https://dev.mysql.com/doc/refman/5.0/en/show-index.html
AFFICHER L'INDEX DE 'my_table' WHERE Key_name = 'index_to_check'; – mit
Mieux vaut utiliser Column_name au lieu de Key_name, de cette façon vous n'avez pas besoin de trouver le nom de l'index s'il est automatiquement ajouté sans nom. – Programista
Comment vérifier plusieurs clés? – berserk
simplement regarder une disposition de tables de la cli. vous feriez
desc matable
ou
Afficher la table mytable
Essayez:
SELECT * FROM information_schema.statistics
WHERE table_schema = [DATABASE NAME]
AND table_name = [TABLE NAME] AND column_name = [COLUMN NAME]
Il vous dira i f il y a un index de n'importe quelle sorte sur une certaine colonne sans avoir besoin de connaître le nom donné à l'index. Il travaillera également dans une procédure stockée (par opposition à afficher l'index)
SHOW KEYS FROM tablename WHERE Key_name='unique key name'
vous pouvez trouver s'il existe une clé unique dans la table
show index from table_name where Column_name='column_name';
Vous ne pouvez pas exécuter un indice d'exposition spécifique requête car il va lancer une erreur si un index n'existe pas. Par conséquent, vous devez saisir tous les index dans un tableau et les parcourir si vous voulez éviter les erreurs SQL.
Voici comment je le 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.
$this->name = 'province';
$stm = $this->db->prepare('show index from `leads`');
$stm->execute();
$res = $stm->fetchAll();
$index_exists = false;
foreach ($res as $r) {
if ($r['Column_name'] == $this->name) {
$index_exists = true;
}
}
De cette façon, vous pouvez vraiment affiner les attributs d'index. Faire un print_r
de $res
afin de voir ce que vous pouvez travailler avec.
vous pouvez utiliser l'instruction SQL suivante pour vérifier la colonne donnée sur la table a été indexé ou non
select a.table_schema, a.table_name, a.column_name, index_name
from information_schema.columns a
join information_schema.tables b on a.table_schema = b.table_schema and
a.table_name = b.table_name and
b.table_type = 'BASE TABLE'
left join (
select concat(x.name, '/', y.name) full_path_schema, y.name index_name
FROM information_schema.INNODB_SYS_TABLES as x
JOIN information_schema.INNODB_SYS_INDEXES as y on x.TABLE_ID = y.TABLE_ID
WHERE x.name = 'your_schema'
and y.name = 'your_column') d on concat(a.table_schema, '/', a.table_name, '/', a.column_name) = d.full_path_schema
where a.table_schema = 'your_schema'
and a.column_name = 'your_column'
order by a.table_schema, a.table_name;
depuis les jointures sont contre INNODB_SYS_ *, de sorte que les indices de match ne sont venus des tables InnoDB seulement
Utilisez l'instruction suivante: SHOW INDEX dE your_table
Et puis vérifier le résultat pour les champs: la ligne [ "Table"], rangée [ "Key_name"]
Assurez-vous d'écrire correctement "Nom_clé"
- 1. Vérifiez si un index non cluster existe sur une colonne de table
- 2. Comment identifier si un index Lucene.Net existe dans un dossier?
- 3. Vérifier si un élément existe
- 4. Comment vérifier si un fichier existe dans un fichier makefile
- 5. ADO.Net Excel, Vérifier si une table existe?
- 6. Vérifier si un répertoire existe sur un autre serveur ksh
- 7. Comment renommer un index dans MySQL
- 8. Sélectionnez un champ différent dans mysql si un champ est défini sur null?
- 9. Comment vérifier si une variable existe dans un modèle FreeMarker?
- 10. Comment vérifier si un répertoire donné existe dans Ruby
- 11. Comment vérifier si une valeur est un entier dans MySQL?
- 12. Vérifier si un cadre existe avec jQuery
- 13. Comment détecter s'il existe un index pour une colonne spécifique sur une table dans Oracle?
- 14. comment vérifier si un fichier existe avant de le créer
- 15. ColdFusion: Comment vérifier si un certain élément existe dans un tableau à deux dimensions?
- 16. Ant: Vérifier si la classe existe dans un fichier jar
- 17. Choisir les champs dans un index multichamp sur MySQL
- 18. Ext JS xtemplate question - vérifier si le champ existe
- 19. Comment puis-je vérifier .htaccess si un nouveau fichier existe?
- 20. MSBuild: Comment puis-je vérifier si un processus existe?
- 21. Comment vérifier si un fichier existe en javascript?
- 22. Comment vérifier si un fichier existe sur un serveur en utilisant C# et la classe WebClient
- 23. Comment vérifier si un contrôleur existe en utilisant Zend Framework
- 24. Vérifier si un élément existe dans Action Script
- 25. Comment rechercher un index dans Oracle
- 26. Comment vérifier si un style de fenêtre existe dans un hexadécimal?
- 27. Comment vérifier si un nom de colonne existe dans un CachedRowSet?
- 28. Comment vérifier si le fichier existe sur FTP avant FtpWebRequest
- 29. Vérifier si un chemin existe sur un hôte distant à l'aide de paramiko
- 30. Vérifier si l'élément XML existe
Comment vérifier plusieurs clés? – berserk