sql >> Database >  >> RDS >> Mysql

Hoe kan ik de standaard karakterset/sortering in mijn MySQL achterhalen?

Gebruik SHOW CREATE TABLE . Bijvoorbeeld:

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

Opmerkingen:

  • De meeste kolommen hebben de tekenset en sortering gespeld.
  • Degene die dat niet doet (dflt ) neemt die instellingen over van de DEFAULTs voor de tafel.
  • Elke CHARACTER SET heeft een "standaard" sortering.
  • Elke COLLATE is gekoppeld aan precies één CHARACTER SET , namelijk het eerste deel van de sorteernaam.
  • (Hier niet weergegeven):De DEFAULTs voor de tabel zijn overgenomen van de DATABASE .
  • MySQL 8 is standaard CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci als je niets doet.
  • Oudere versies zijn standaard ingesteld op CHARSET=latin1 COLLATE=latin1_swedish_ci
  • De "0900" of "520" in sommige sorteringen verwijst naar Unicode Standards-versies 9.0 en 5.20. Hieruit kunt u afleiden dat er in de toekomst mogelijk nieuwe, "betere" sorteringen komen.



  1. Ik kan er niet achter komen wat voor fout ik heb begaan bij het maken van deze MYSQL-query

  2. Is er een manier om een ​​UML-klassendiagram te genereren vanuit een bestaande MySQL-database?

  3. Meerdere databases gebruiken binnen CodeIgniter

  4. Opgeslagen procedure uitvoeren met behulp van entiteitsraamwerk