[英]Alter all database tables engine to InnoDB
我想使用 sql 查詢,將我所有的數據庫表引擎從 MyISAM 更改為 InnoDB。
我使用了下面的查詢。 雖然它給了我一個成功的信息,但它不起作用。 我的表的存儲引擎仍然是 MyISAM。
SELECT CONCAT('ALTER TABLE ', table_name, ' ENGINE=InnoDB;') as ExecuteTheseSQLCommands
FROM information_schema.tables WHERE table_schema = 'name_of_the_database'
ORDER BY table_name DESC;
如果您有 PHP 方面的知識,那么此腳本將幫助您:
如果您了解 Shell 腳本,那么此鏈接將幫助您:
http://shrubbery.homeip.net/c/display/W/Shell+and+MySQL#ShellandMySQL-ConvertMyISAMtablestoInnoDB (域名由wiki所有者更改)
我的解決方案 - 啟動你的 mysql shell 並粘貼:
SELECT CONCAT('ALTER TABLE ',CONCAT(TABLE_SCHEMA,'.',TABLE_NAME),'
ENGINE=InnoDB;')
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='MyISAM'
AND TABLE_SCHEMA NOT IN ('MYSQL','INFORMATION_SCHEMA','PERFORMANCE_SCHEMA','SYS')
INTO OUTFILE '/tmp/mysql.conversions';
SOURCE /tmp/mysql.conversions;
來源 1: https : //computingforgeeks.com/how-to-convert-all-mysql-tables-from-myisam-into-innodb-storage-engine/
見http://dev.mysql.com/doc/refman/5.0/en/converting-tables-to-innodb.html
ALTER TABLE t1 ENGINE=InnoDB;
編輯:哦等等,你生成了這種語句,但它們不起作用?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.