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
正確に1つのCHARACTER SET
に関連付けられています 、つまり照合名の最初の部分。 - (ここには表示されていません):
DEFAULTs
テーブルの場合はDATABASE
から継承されます 。 - MySQL8のデフォルトは
CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
何もしなければ。 - 古いバージョンはデフォルトで
CHARSET=latin1 COLLATE=latin1_swedish_ci
- 一部の照合での「0900」または「520」は、UnicodeStandardsバージョン9.0および5.20を指します。このことから、将来、新しい「より良い」照合が行われる可能性があると推測できます。