MySQL將某個數據庫下的所有表的存儲引擎修改為InnoDB類型語句


如何將mysql數據庫中的MyISAM類型表更改為InnoDB類型的表

改單個表

ALTER TABLE TABLENAME ENGINE=InnoDB;
ALTER TABLE TABLENAME ENGINE=MyISAM;

改多個表

#修改為InnoDB
SELECT CONCAT( 'ALTER TABLE ', TABLE_NAME, ' ENGINE=InnoDB;' )
FROM information_schema.tables
WHERE table_schema = 'DBNAME'
LIMIT 0 , 10000;

 #修改為MyISAM

SELECT CONCAT( 'ALTER TABLE ', TABLE_NAME, ' ENGINE=MyISAM;' ) FROM information_schema.tables WHERE table_schema = 'DBNAME' LIMIT 0 , 10000;

使用說明:

1. 將以上SQL語句中的 DBNAME 替換成需要修改的數據庫名稱。

2. 執行SQL,這個時候還沒有修改,只是給了一個查詢結果。

3. 將查詢結果復制,去掉前后的引號,然后執行。

 

批量修改mysql數據庫字符集

ALTER DATABASE DBNAME DEFAULT CHARACTER SET='utf8';

 mysql數據庫表字段亂碼,連接數據庫時設置正確的編碼即可

mysql_query('set names utf8');

 zencart示例

Mysql修改表、字段、庫的字符集

ALTER DATABASE `zc139` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

ALTER TABLE `news_articles` ENGINE=INNODB;
ALTER TABLE `news_articles_text` ENGINE=INNODB;
ALTER TABLE `news_authors` ENGINE=INNODB;
ALTER TABLE `news_comments` ENGINE=INNODB;
ALTER TABLE `news_comments_description` ENGINE=INNODB;
ALTER TABLE `popular_searches` ENGINE=INNODB;
ALTER TABLE `un_products_to_wishlists` ENGINE=INNODB;
ALTER TABLE `un_wishlists` ENGINE=INNODB;


ALTER TABLE `news_articles` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE `news_articles_text` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE `news_authors` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE `news_comments` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE `news_comments_description` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE `popular_searches` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE `un_products_to_wishlists` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE `un_wishlists` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM