Как запустить команду для всех таблиц в базе данных?ALTER TABLE ALL TABLES ROW_FORMAT = Исправлено;
ALTER TABLE table_name ROW_FORMAT=Fixed;
У меня есть более 40000 таблиц, я хочу изменить их все за один раз.
Как запустить команду для всех таблиц в базе данных?ALTER TABLE ALL TABLES ROW_FORMAT = Исправлено;
ALTER TABLE table_name ROW_FORMAT=Fixed;
У меня есть более 40000 таблиц, я хочу изменить их все за один раз.
Вы не можете изменить таблицу более чем одной таблицы в инструкции 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 из них (или полностью зависит от стола столбцы).
Я бы сказал, что 40000 таблиц - проблема, которая действительно должна быть решена, но если у вас есть много таблиц, то, вероятно, слишком поздно решать эту проблему, не начиная полностью. – Uueerdo