这是旧帖子,但我想我可以帮助别人。你可以这样做:
SELECT concat("ALTER TABLE ",trim(TABLE_NAME)),group_concat(IF(INDEX_NAME="PRIMARY",
"ADD PRIMARY KEY "," ADD INDEX `"),INDEX_NAME,"` (`",column_name,"` ASC) "), ";"
FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'SCHEMA' and table_name like "TABLE_NAME%"
and seq_in_index=1 group by table_name;`
或者将索引复制到一个表到具有相同字段的其他表:
SELECT concat("ALTER TABLE ",trim(b.TABLE_NAME)),
group_concat(IF(a.INDEX_NAME="PRIMARY","ADD PRIMARY KEY "," ADD INDEX `"),
a.INDEX_NAME,"` (`",a.column_name,"` ASC) "), ";" FROM INFORMATION_SCHEMA.STATISTICS a
join INFORMATION_SCHEMA.STATISTICS b WHERE a.TABLE_SCHEMA = 'SCHEMA' and
a.table_name ="INDEX_TABLE" and b.table_name like "TABLES_TO_INDEX%" and
a.seq_in_index=1 group by b.table_name;
然后复制粘贴到查询窗口。