我有〜1000个以相同前缀开头的表:
table_prefix_{SOME_ID}
(我可以从另一张表中取出ID)
在mysql中循环遍历 所有 表的快速方法是什么,并执行:
ALTER TABLE `table_prefix_{some_id}` ADD INDEX `fields` (`field`)
答案 0 :(得分:25)
忘记循环。就这样做:
select concat( 'alter table ', a.table_name, ' add index `fields` (`field`);' )
from information_schema.tables a
where a.table_name like 'table_prefix_%';
然后获取结果集并将其作为SQL脚本运行。
顺便说一句,你可能意味着create index index_name on table_name( column_name);