sxwen

一、修改my.ini配置文件(mysql配置文件)

character_set_server = utf8 #设置字符集


重启mysql数据库服务

查看当前数据库字符集

show VARIABLES like \'character%\';

 



二、修改数据库字符集

alter database 数据库名 character set utf8;

ps:修改完数据库字符集,需要重启mysql数据库。


三、修改表字符集

ALTER TABLE  表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

生成所有表修改字符集语句:

SELECT TABLE_NAME,CONCAT(\'ALTER TABLE  \',TABLE_NAME,\' DEFAULT CHARACTER SET \',a.DEFAULT_CHARACTER_SET_NAME,\' COLLATE \',a.DEFAULT_COLLATION_NAME,\';\') executeSQL FROM information_schema.SCHEMATA a,information_schema.TABLES b
WHERE a.SCHEMA_NAME=b.TABLE_SCHEMA
AND a.DEFAULT_COLLATION_NAME!=b.TABLE_COLLATION
AND b.TABLE_SCHEMA=\'数据库名\' 

 



四、修改列字符集

ALTER TABLE  表名 CHANGE  列名  列名  VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;

 



生成所有列修改字符集语句:

 

select b.table_name,b.column_name,b.character_set_name,b.collation_name
,CONCAT(\'ALTER TABLE \',b.table_name,\' MODIFY \',b.column_name,\' \',b.DATA_TYPE,\'(\',b.CHARACTER_MAXIMUM_LENGTH,\') \',CASE WHEN b.COLUMN_DEFAULT IS NULL THEN \'\'  ELSE CONCAT(\'DEFAULT \\'\',b.COLUMN_DEFAULT,\'\\'\') END,\' COMMENT \\'\',b.COLUMN_COMMENT,\'\\';\') executeSQL
 from information_schema.TABLES a,information_schema.COLUMNS b where  b.character_set_name IS NOT NULL and a.TABLE_SCHEMA=b.TABLE_SCHEMA AND a.TABLE_NAME=b.TABLE_NAME
AND a.TABLE_COLLATION!=b.COLLATION_NAME
and a.TABLE_SCHEMA=\'数据库名\'

 

分类:

技术点:

相关文章: