mysql: цикл по таблицам и изменение таблицы добавления индекса - PullRequest
6 голосов
/ 25 августа 2010

У меня ~ 1000 таблиц, которые начинаются с того же префикса: table_prefix_{SOME_ID} (я могу взять идентификаторы из другой таблицы)

что такое быстрый способ перебрать все таблицы в mysql и do:

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

1 Ответ

25 голосов
/ 25 августа 2010

Забудьте зацикливание. Просто сделай это:

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

...