You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MariaDB是否有内置方法导出独立的CREATE INDEX索引创建语句?

导出MySQL独立CREATE INDEX语句的方法

方法一:通过INFORMATION_SCHEMA直接生成SQL语句

MySQL的系统表INFORMATION_SCHEMA.STATISTICS存储了所有索引的元数据,你可以用以下查询直接生成CREATE INDEX(或主键相关)语句:

导出普通索引(不含主键)

SELECT CONCAT(
    'CREATE ',
    IF(NON_UNIQUE = 0, 'UNIQUE ', ''),
    'INDEX ',
    INDEX_NAME,
    ' ON ',
    TABLE_SCHEMA,
    '.',
    TABLE_NAME,
    ' (',
    GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX SEPARATOR ', '),
    ');'
) AS create_index_stmt
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = '你的数据库名'
  AND TABLE_NAME = '你的表名'
  AND INDEX_NAME != 'PRIMARY' -- 排除主键,需要的话可删除此条件
GROUP BY TABLE_SCHEMA, TABLE_NAME, INDEX_NAME, NON_UNIQUE;

导出所有索引(含主键)

主键无法用CREATE INDEX创建,需用ALTER TABLE ADD PRIMARY KEY,调整后的查询如下:

SELECT CONCAT(
    IF(INDEX_NAME = 'PRIMARY',
       'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' ADD PRIMARY KEY (',
       GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX SEPARATOR ', '),
       ');',
       CONCAT(
           'CREATE ',
           IF(NON_UNIQUE = 0, 'UNIQUE ', ''),
           'INDEX ',
           INDEX_NAME,
           ' ON ',
           TABLE_SCHEMA,
           '.',
           TABLE_NAME,
           ' (',
           GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX SEPARATOR ', '),
           ');'
       )
    )
) AS create_index_stmt
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = '你的数据库名'
  AND TABLE_NAME = '你的表名'
GROUP BY TABLE_SCHEMA, TABLE_NAME, INDEX_NAME, NON_UNIQUE;

执行查询后,结果列create_index_stmt就是可直接执行的索引创建语句。

方法二:用mysqldump结合文本处理工具提取

如果习惯用命令行工具,可以先导出表结构,再通过sed/grep提取索引语句并转换格式:

# 替换其中的username、your_database、your_table为实际值
mysqldump -u username -p --no-data your_database your_table | \
sed -n '/^CREATE TABLE/,/^)/p' | \
grep -E '^(  UNIQUE)?  KEY' | \
sed 's/^  /ALTER TABLE your_table ADD /;s/KEY/INDEX/;'

这个命令会把CREATE TABLE中的KEY/UNIQUE KEY语句转换成ALTER TABLE ADD INDEX格式,适合快速提取。


内容的提问来源于stack exchange,提问作者Luc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:16:09