mysql导出表索引脚本

这篇博客记录了一个SQL查询,用于根据information_schema.STATISTICS表生成ALTER TABLE语句,目的是在指定库名和表名的表中添加索引。查询通过CONCAT函数组合不同条件,区分唯一性和非唯一性索引类型,并考虑了FULLTEXT和SPATIAL索引。此查询适用于数据库管理和优化。
摘要由CSDN通过智能技术生成
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 = '库名'
	and TABLE_NAME = '表名'
group by
	TABLE_NAME ,
	INDEX_NAME
order by
	TABLE_NAME asc ,
	INDEX_NAME asc

主要就是通过对information_schema.STATISTICS进行一些concat操作,放在这里记录一下,怕回头忘记

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值