Użyj SHOW CREATE TABLE
. Na przykład:
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
Uwagi:
- Większość kolumn ma określony zestaw znaków i sortowanie.
- Ten, który nie (
dflt
) dziedziczy te ustawienia zDEFAULTs
do stołu. - Każdy
CHARACTER SET
ma "domyślne" sortowanie. - Każdy
COLLATE
jest powiązany z dokładnie jednymCHARACTER SET
, czyli pierwsza część nazwy porównania. - (Nie pokazano tutaj):
DEFAULTs
dla tabeli są dziedziczone zDATABASE
. - MySQL 8 domyślnie to
CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
jeśli nic nie zrobisz. - Starsze wersje mają domyślną wartość
CHARSET=latin1 COLLATE=latin1_swedish_ci
- Opis „0900” lub „520” w niektórych zestawieniach odnosi się do wersji Unicode Standards 9.0 i 5.20. Możesz z tego wywnioskować, że w przyszłości mogą pojawić się nowe, „lepsze” zestawienia.