2010-08-25 16 views
6

mam ~ 1000 tabele, które zaczynają się w tym samym prefiksem: table_prefix_{SOME_ID} (mogę wziąć identyfikatory z innej tabeli)mysql: pętla nad stołami i alter table dodać indeks

jaki jest szybki sposób pętli nad wszystkie tabele w MySQL i zrobić:

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

Odpowiedz

25

Zapomnij pętli. Wystarczy to zrobić:

select concat('alter table ', a.table_name, ' add index `fields` (`field`);') 
from information_schema.tables a 
where a.table_name like 'table_prefix_%'; 

Następnie wybierz zestaw wyników i uruchom go jako skrypt SQL.

BTW, to prawdopodobnie znaczy create index index_name on table_name(column_name);

+2

kod, który pisze kod jest cool. –