由于业务需要,记次据库需迁移测试环境上的生产L数索引到正式库上。云服务器下面简单记录下迁移过程中的批量脚本。高防服务器

1. 导出所有索引
包括PRIMARY KEY和INDEX
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 = FSL_ATT_UAT GROUP BY TABLE_NAME, INDEX_NAME ORDER BY TABLE_NAME ASC, INDEX_NAME ASC
2. 不包括PRIMARY KEY,只包含INDEX
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 = fsl_att_uat AND UPPER( INDEX_NAME ) != PRIMARY GROUP BY TABLE_NAME, INDEX_NAME ORDER BY TABLE_NAME ASC, INDEX_NAME ASC
到正式库执行结果语句即可。源码下载
记次据库