由於資料庫中的數據表和表欄位的字元集和排序規則不統一,找了很多帖子,最後發現如下腳本很好用。 用法兒是:先執行如下腳本生成修改數據表和表欄位的腳本,然後再執行這些生成的腳本 1. 修改指定資料庫中所有varchar類型的表欄位的字元集為UTF8,並將排序規則修改為utf8_general_ci 2. ...
由於資料庫中的數據表和表欄位的字元集和排序規則不統一,找了很多帖子,最後發現如下腳本很好用。
用法兒是:先執行如下腳本生成修改數據表和表欄位的腳本,然後再執行這些生成的腳本
1. 修改指定資料庫中所有varchar類型的表欄位的字元集為UTF8,並將排序規則修改為utf8_general_ci
SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET UTF8 COLLATE utf8_general_ci', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';') FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'databaseName' AND DATA_TYPE = 'varchar' AND (CHARACTER_SET_NAME != 'utf8' OR COLLATION_NAME != 'utf8_general_ci' );
2. 修改指定資料庫中所有數據表的字元集為UTF8,並將排序規則修改為utf8_general_ci
SELECT CONCAT('ALTER TABLE ', table_name, 'CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'databaseName'