У меня большая база данных MySQL с более чем 400 таблицами.Почти все таблицы необходимо изменить на InnoDB в соответствии с требованиями платформы.
Я выполняю следующий запрос, чтобы увидеть текущие механизмы таблиц для базы данных:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'DATABASE_NAME';
У меня естьсоздал плоский файл со списком всех таблиц с правильным синтаксисом «ALTER TABLE»:
ALTER TABLE wishlist_item ENGINE=InnoDB;
...etc...
Я запустил этот файл со следующим синтаксисом:
mysql -u USERNAME -pPASSWORD DATABASE_NAME < alter_staging_tables.txt
Однако, когда я запускаю:
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'DATABASE_NAME';
Он по-прежнему показывает ВСЕ таблицы как MyISAM, несмотря на мой файл, запущенный и меняющий типы движка.Я даже вошел, запустил один изменяющий вручную:
mysql> ALTER TABLE zendesk ENGINE=InnoDB;
Query OK, 8 rows affected, 1 warning (0.00 sec)
Records: 8 Duplicates: 0 Warnings: 0
Но когда я делаю выбор:
| zendesk | MyISAM |
Он показывает таблицу как неподвижный MyISAM.Что я делаю неправильно?TIA.
Обновление: версия MySQL:
mysql -v
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 306675
Server version: 5.0.77-log Source distribution
Обновление: значит, изменение НЕ прилипает:
mysql> ALTER TABLE zendesk ENGINE=InnoDB;
Query OK, 8 rows affected, 1 warning (0.00 sec)
Records: 8 Duplicates: 0 Warnings: 0
mysql> show warnings;
+---------+------+-------------------------------------------------+
| Level | Code | Message |
+---------+------+-------------------------------------------------+
| Warning | 1266 | Using storage engine MyISAM for table 'zendesk' |
+---------+------+-------------------------------------------------+
1 row in set (0.00 sec)