sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag ta reda på standardteckenuppsättningen/sorteringen i min MySQL

Använd SHOW CREATE TABLE . Till exempel:

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

Anmärkningar:

  • De flesta kolumner har teckenuppsättningen och sorteringen stavade.
  • Den som inte gör det (dflt ) ärver dessa inställningar från DEFAULTs för bordet.
  • Varje CHARACTER SET har en "standard"-sortering.
  • Varje COLLATE är associerad med exakt en CHARACTER SET , nämligen den första delen av sorteringsnamnet.
  • (Visas inte här):DEFAULTs för tabellen ärvs från DATABASE .
  • MySQL 8 har som standard CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci om du inte gör något.
  • Äldre versioner har som standard CHARSET=latin1 COLLATE=latin1_swedish_ci
  • "0900" eller "520" i vissa kollationer hänvisar till Unicode Standards version 9.0 och 5.20. Av detta kan du dra slutsatsen att det kan komma nya, "bättre", sammanställningar i framtiden.



  1. Hur ansluter man till fjärrstyrd Oracle DB med PL/SQL-utvecklare?

  2. Mysql-fråga för att extrahera domäner från webbadresser

  3. WorkbenchJ - Fel:aggregat är inte tillåtna i GROUP BY-satsen

  4. Vitlista IP-adressintervall med cPanel