Utilice SHOW CREATE TABLE
. Por ejemplo:
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
Notas:
- La mayoría de las columnas tienen el juego de caracteres y la intercalación explicados.
- El que no (
dflt
) hereda esa configuración de losDEFAULTs
para la mesa - Cada
CHARACTER SET
tiene una intercalación "predeterminada". - Cada
COLLATE
está asociado con exactamente unCHARACTER SET
, es decir, la primera parte del nombre de colación. - (No se muestra aquí):Los
DEFAULTs
para la tabla se heredan de laDATABASE
. - MySQL 8 por defecto es
CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
si no haces nada. - Las versiones anteriores tenían como valor predeterminado
CHARSET=latin1 COLLATE=latin1_swedish_ci
- El "0900" o "520" en algunas colaciones se refiere a las versiones 9.0 y 5.20 de los estándares Unicode. Puede inferir de esto que puede haber nuevas colaciones "mejores" en el futuro.