Конвертировать все таблицы из MyISAM в InnoDB

Запустите эту инструкцию SQL (в клиенте MySQL, phpMyAdmin или где угодно), чтобы получить все таблицы MyISAM в вашей базе данных.

Замените значение переменной 

name_of_your_db

 на ваше имя базы данных.


<span class="hljs-keyword">SET</span> @DATABASE_NAME = <span class="hljs-string">'name_of_your_db'</span>;

<span class="hljs-keyword">SELECT</span>  <span class="hljs-keyword">CONCAT</span>(<span class="hljs-string">'ALTER TABLE `'</span>, table_name, <span class="hljs-string">'` ENGINE=InnoDB;'</span>) <span class="hljs-keyword">AS</span> sql_statements
<span class="hljs-keyword">FROM</span>    information_schema.tables <span class="hljs-keyword">AS</span> tb
<span class="hljs-keyword">WHERE</span>   table_schema = @DATABASE_NAME
<span class="hljs-keyword">AND</span>     <span class="hljs-string">`ENGINE`</span> = <span class="hljs-string">'MyISAM'</span>
<span class="hljs-keyword">AND</span>     <span class="hljs-string">`TABLE_TYPE`</span> = <span class="hljs-string">'BASE TABLE'</span>
<span class="hljs-keyword">ORDER</span> <span class="hljs-keyword">BY</span> table_name <span class="hljs-keyword">DESC</span>;

Затем скопируйте вывод и запустите его как новый запрос SQL.