7

我有〜1000个以相同前缀开头的表:( table_prefix_{SOME_ID} 我可以从另一个表中获取ID)

循环遍历mysql中所有表并执行以下操作的快速方法是什么:

   ALTER TABLE `table_prefix_{some_id}` ADD INDEX `fields` (`field`)
4

1 回答 1

29

忘记循环。只需这样做:

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);

于 2010-08-25T10:55:18.827 回答