Comment puis-je voir le classement d'une table? IE je veux voir:
+-----------------------------+
| table | collation |
|-----------------------------|
| t_name | latin_general_ci |
+-----------------------------+
SHOW TABLE STATUS
affiche des informations sur une table, y compris le classement.
Par exemple SHOW TABLE STATUS where name like 'TABLE_NAME'
La réponse ci-dessus est excellente, mais elle ne fournit pas réellement d'exemple qui évite à l'utilisateur d'avoir à rechercher la syntaxe:
show table status like 'test';
Où test
est le nom de la table.
(Corrigé selon les commentaires ci-dessous.)
Vous pouvez également interroger INFORMATION_SCHEMA.TABLES
et obtenir le classement pour une table spécifique:
SELECT TABLE_SCHEMA
, TABLE_NAME
, TABLE_COLLATION
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 't_name';
cela donne une sortie beaucoup plus lisible contrairement à SHOW TABLE STATUS
celle qui contient beaucoup d'informations non pertinentes.
Notez que le classement peut également être appliqué aux colonnes (qui peuvent avoir un classement différent de celui de la table elle-même). Pour récupérer le classement des colonnes d'une table particulière, vous pouvez interroger INFORMATION_SCHEMA.COLUMNS
:
SELECT TABLE_SCHEMA
, TABLE_NAME
, COLUMN_NAME
, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 't_name';
Utilisez cette requête:
Vous obtiendrez toutes les informations relatives à la table.
la source
...) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1
Je suppose qu'il peut ne pas afficher le classement s'il est défini par défaut pour la base de données dans les versions ultérieures de mysql / mariadb.utf8
, mais différents classementsutf8_general_ci
vsutf8_unicode_ci
. Cela peut provoquer des messages d'erreur commeHY000, 1267, Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
... qui est le message qui m'a amené à cette page.Cette commande décrit
la source