sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg finde ud af standardtegnsættet/sorteringen i min MySQL

Brug VIS OPRET TABEL . For eksempel:

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

Bemærkninger:

  • De fleste af kolonnerne har tegnsættet og sorteringen stavet.
  • Den, der ikke gør (dflt ) arver disse indstillinger fra DEFAULTs til bordet.
  • Hvert TEGNSÆT har en "standard"-sortering.
  • Hver SAMLER er knyttet til præcis ét TEGNSÆT , nemlig den første del af samlingsnavnet.
  • (Ikke vist her):DEFAULTS for tabellen er nedarvet fra DATABASE .
  • MySQL 8 er som standard CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci hvis du ikke gør noget.
  • Ældre versioner er standard til CHARSET=latin1 COLLATE=latin1_swedish_ci
  • "0900" eller "520" i nogle samlinger henviser til Unicode Standards version 9.0 og 5.20. Du kan udlede af dette, at der kan være nye, "bedre", sammenstillinger i fremtiden.



  1. MySQL sæt unikke_tjek, sæt udenlandske_nøgle_tjek vs. ændre tabel deaktivere nøgler

  2. Datamigreringer

  3. Opdater en databasemailprofil i SQL Server (T-SQL)

  4. Mysql Vælg gensidige par af poster uden dubletter