zoukankan      html  css  js  c++  java
  • mysql 字符集排查

    mysql 字符集排查

    库级别

    SELECT
    	* 
    FROM
    	information_schema.schemata 
    WHERE
    	schema_name NOT IN ( 'information_schema', 'performance_schema', 'mysql', 'sys' ) 
    	AND ( default_character_set_name <> 'utf8' OR default_collation_name <> 'utf8_general_ci' );
    

    表级别

    SELECT 
        TABLE_SCHEMA,
        TABLE_NAME,
        TABLE_TYPE,
        TABLE_ROWS,
        TABLE_COLLATION,
        CREATE_OPTIONS
    FROM
        information_schema.TABLES
    WHERE
        TABLE_TYPE = 'BASE TABLE'
            AND TABLE_SCHEMA NOT IN ('information_schema' , 'performance_schema', 'mysql', 'sys')
            AND TABLE_COLLATION <> 'utf8_general_ci';
    

    字段级别

    SELECT 
        TABLE_SCHEMA AS '库名',
        DEFAULT_CHARACTER_SET_NAME AS '库的字符集',
        DEFAULT_COLLATION_NAME AS '库的校对字符集',
        TABLE_NAME AS '表名',
        TABLE_COLLATION AS '表的校对规则',
        COLUMN_NAME AS '字段名',
        CHARACTER_SET_NAME AS '字段的字符集',
        COLLATION_NAME AS '字段的校对规则'
    FROM
        (SELECT 
            C2.TABLE_SCHEMA,
                C2.TABLE_NAME,
                C2.CHARACTER_SET_NAME,
                T2.TABLE_COLLATION,
                C2.COLUMN_NAME,
                C2.COLLATION_NAME,
                S2.DEFAULT_CHARACTER_SET_NAME,
                S2.DEFAULT_COLLATION_NAME,
                CASE
                    WHEN
                        S2.DEFAULT_CHARACTER_SET_NAME = 'utf8'
                            AND S2.DEFAULT_COLLATION_NAME = 'utf8_general_ci'
                            AND (C2.CHARACTER_SET_NAME = 'utf8'
                            OR C2.CHARACTER_SET_NAME IS NULL)
                            AND (C2.COLLATION_NAME = 'utf8_general_ci'
                            OR C2.COLLATION_NAME IS NULL)
                            AND T2.TABLE_COLLATION = 'utf8_general_ci'
                    THEN
                        'true'
                    ELSE 'false'
                END STATUS
        FROM
            information_schema.COLUMNS AS C2
        JOIN (SELECT 
            TABLE_SCHEMA,
                TABLE_NAME,
                TABLE_TYPE,
                TABLE_ROWS,
                TABLE_COLLATION,
                CREATE_OPTIONS
        FROM
            information_schema.TABLES
        WHERE
            TABLE_TYPE = 'BASE TABLE'
                AND TABLE_SCHEMA NOT IN ('information_schema' , 'sys', 'performance_schema', 'mysql')) T2 ON C2.TABLE_NAME = T2.TABLE_NAME
            AND C2.TABLE_SCHEMA = T2.TABLE_SCHEMA
        JOIN (SELECT 
            SCHEMA_NAME,
                DEFAULT_CHARACTER_SET_NAME,
                DEFAULT_COLLATION_NAME
        FROM
            information_schema.SCHEMATA) S2 ON T2.TABLE_SCHEMA = S2.SCHEMA_NAME) charset_status
    WHERE
        STATUS = 'false'
    ORDER BY TABLE_SCHEMA , TABLE_NAME;
    
    • 表默认排序规则。输出未显式列出表默认字符集,但排序规则名称以字符集名称开头。

  • 相关阅读:
    SPSS时间序列:频谱分析
    PureBasic—数控编辑框与调节块和进度条
    DELPHI2007 安装ACTIVEX插件的方法
    C++ builder的文件操作
    C++动态数组
    excel快速复制大量公式的方法
    Delphi XE5 如何与其他版本共存
    PureBasic 集成Form设计器的使用
    VS C++ 从一个窗口创建另一个窗口
    ENVI 5.0 Beta 体验——影像数据的显示
  • 原文地址:https://www.cnblogs.com/gczheng/p/9953676.html
Copyright © 2011-2022 走看看