Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich den Standardzeichensatz/die Sortierung in meinem MySQL herausfinden

Verwenden Sie SHOW CREATE TABLE . Zum Beispiel:

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

Hinweise:

  • In den meisten Spalten sind der Zeichensatz und die Sortierung ausgeschrieben.
  • Derjenige, der dies nicht tut (dflt ) erbt diese Einstellungen von den DEFAULTs für den Tisch.
  • Jeder CHARACTER SET hat eine "Standard"-Sortierung.
  • Jeder COLLATE ist genau einem CHARACTER SET zugeordnet , nämlich der erste Teil des Sortierungsnamens.
  • (hier nicht gezeigt):Die DEFAULTs für die Tabelle werden von der DATABASE geerbt .
  • MySQL 8 ist standardmäßig CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci wenn du nichts tust.
  • Ältere Versionen verwendeten standardmäßig CHARSET=latin1 COLLATE=latin1_swedish_ci
  • Das "0900" oder "520" in einigen Sortierungen bezieht sich auf die Unicode-Standardversionen 9.0 und 5.20. Daraus können Sie schließen, dass es in Zukunft möglicherweise neue, "bessere" Kollationen geben wird.