我有一個超過400個表的大型MySQL數據庫。幾乎所有的表都需要根據框架要求更改爲InnoDB。MySQL表引擎沒有被更新(或更新沒有被反映)
我運行下面的查詢來查看數據庫當前表引擎:
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)
MySQL的版本?其中一些謊言關於這些東西... – Romain