sql >> Databáze >  >> RDS >> Mysql

Jak mohu zjistit výchozí znakovou sadu/kolování v mém MySQL

Použijte SHOW CREATE TABLE . Například:

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

Poznámky:

  • Většina sloupců má uvedenou znakovou sadu a řazení.
  • Ten, který ne (dflt ) zdědí tato nastavení z DEFAULTs pro stůl.
  • Každá CHARACTER SET má „výchozí“ řazení.
  • Každý COLLATE je přidružen přesně k jedné CHARACTER SET , konkrétně první část názvu řazení.
  • (Zde není zobrazeno):DEFAULTs pro tabulku se dědí z DATABASE .
  • Výchozí nastavení MySQL 8 je CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci pokud nic neuděláte.
  • Starší verze měly výchozí hodnotu CHARSET=latin1 COLLATE=latin1_swedish_ci
  • Číslo „0900“ nebo „520“ v některých řazeních odkazuje na standardy Unicode verze 9.0 a 5.20. Z toho můžete usuzovat, že v budoucnu mohou existovat nová, „lepší“, kolace.



  1. zobrazení dat z databáze do html tabulky

  2. mysql CONCAT () JAKO jméno?

  3. Psycopg2, Postgresql, Python:Nejrychlejší způsob hromadného vkládání

  4. Jak získat úplná data záznamu jeho cizím klíčem v laravel?