Utilisez SHOW CREATE TABLE
. Par exemple :
CREATE TABLE a (
dflt VARCHAR(11),
cs VARCHAR(11) CHARACTER SET latin1,
cola VARCHAR(11) COLLATE utf8mb4_hungarian_ci,
cc VARCHAR(11) CHARACTER SET latin1 COLLATE latin1_bin,
colb VARCHAR(11) COLLATE latin1_bin
);
SHOW CREATE TABLE a\G
mysql> SHOW CREATE TABLE a\G
*************************** 1. row ***************************
Table: a
Create Table: CREATE TABLE `a` (
`dflt` varchar(11) DEFAULT NULL,
`cs` varchar(11) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL,
`cola` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_hungarian_ci DEFAULT NULL,
`cc` varchar(11) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
`colb` varchar(11) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
Remarques :
- La plupart des colonnes ont le jeu de caractères et le classement en toutes lettres.
- Celui qui ne le fait pas (
dflt
) hérite de ces paramètres desDEFAULTs
pour le tableau. - Chaque
CHARACTER SET
a un classement "par défaut". - Chaque
COLLATE
est associé à exactement unCHARACTER SET
, à savoir la première partie du nom de la collation. - (Non affiché ici) :les
DEFAULTs
pour la table sont hérités de laDATABASE
. - MySQL 8 utilise par défaut
CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
si vous ne faites rien. - Les anciennes versions par défaut étaient
CHARSET=latin1 COLLATE=latin1_swedish_ci
- Le "0900" ou "520" dans certains classements fait référence aux versions 9.0 et 5.20 des normes Unicode. Vous pouvez en déduire qu'il pourrait y avoir de nouveaux "meilleurs" classements à l'avenir.