美文网首页
MySQL数据库批量导出索引脚本

MySQL数据库批量导出索引脚本

作者: 林木_lker | 来源:发表于2022-02-10 11:57 被阅读0次

    项目迭代长了之后,生产环境和测试环境创建的索引可能存在不一致情况,需要分别导出来进行比对,补全缺失的索引。网上好多文章的脚本执行都有问题,下面这个脚本亲测通过,大家可放心使用。

    SELECT 
        CONCAT( 
            'ALTER TABLE `', 
            TABLE_NAME, 
            '` ', 
            'ADD ', 
        IF 
            ( 
                NON_UNIQUE = 1, 
            CASE 
                    UPPER( INDEX_TYPE )  
                    WHEN 'FULLTEXT' THEN 
                    'FULLTEXT INDEX'  
                    WHEN 'SPATIAL' THEN 
                    'SPATIAL INDEX' ELSE CONCAT( 'INDEX `', INDEX_NAME, '` USING ', INDEX_TYPE )  
                END, 
            IF 
                ( UPPER( INDEX_NAME ) = 'PRIMARY', CONCAT( 'PRIMARY KEY USING ', INDEX_TYPE ), CONCAT( 'UNIQUE INDEX `', INDEX_NAME, '` USING ', INDEX_TYPE ) )  
            ), 
            '(', 
            GROUP_CONCAT( DISTINCT CONCAT ( '`', COLUMN_NAME, '`' ) ORDER BY SEQ_IN_INDEX ASC SEPARATOR ', ' ), 
            ');'  
    ) AS 'Show_Add_Indexes'  
    FROM 
        information_schema.STATISTICS  
    WHERE 
        TABLE_SCHEMA = '数据库名'  
    GROUP BY 
        TABLE_NAME, 
        INDEX_NAME  
    ORDER BY 
        TABLE_NAME ASC, 
        INDEX_NAME ASC
    

    相关文章

      网友评论

          本文标题:MySQL数据库批量导出索引脚本

          本文链接:https://www.haomeiwen.com/subject/epynkrtx.html