2017-01-27 2 views
0

Как запустить команду для всех таблиц в базе данных?ALTER TABLE ALL TABLES ROW_FORMAT = Исправлено;

ALTER TABLE table_name ROW_FORMAT=Fixed; 

У меня есть более 40000 таблиц, я хочу изменить их все за один раз.

+0

Я бы сказал, что 40000 таблиц - проблема, которая действительно должна быть решена, но если у вас есть много таблиц, то, вероятно, слишком поздно решать эту проблему, не начиная полностью. – Uueerdo

ответ

0

Вы не можете изменить таблицу более чем одной таблицы в инструкции ALTER; но вы можете использовать запрос на information_schema. tables для генерации операторов alter.

Что-то вроде

SELECT CONCAT('ALTER TABLE `', table_name, '` ROW_FORMAT=fixed;') AS aQuery 
FROM information_schema.tables 
WHERE table_schema = 'myschema' 

Имейте в виду, FIXED не поддерживается для таблиц InnoDB, и я не уверен на 100%, если он даже может быть явно установлен для MyISAM из них (или полностью зависит от стола столбцы).