Използвайте SHOW CREATE TABLE
. Например:
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
Бележки:
- Повечето от колоните имат набор от знаци и сортиране.
- Този, който не го прави (
dflt
) наследява тези настройки отDEFAULTs
за масата. - Всеки
CHARACTER SET
има съпоставяне по подразбиране. - Всяко
COLLATE
е свързан точно с единCHARACTER SET
, а именно първата част от името на съпоставянето. - (Не е показано тук):
DEFAULTs
за таблицата са наследени отDATABASE
. - MySQL 8 по подразбиране е
CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
ако не правите нищо. - По-старите версии са по подразбиране
CHARSET=latin1 COLLATE=latin1_swedish_ci
- „0900“ или „520“ в някои съпоставяния се отнася до стандартите на Unicode версии 9.0 и 5.20. От това можете да заключите, че може да има нови, „по-добри“ съпоставяния в бъдеще.