欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql修改表、字段、库的字符集

程序员文章站 2022-04-03 10:45:00
...
mysql修改表、字段、库的字符集(转)

原文链接:http://fatkun.com/2011/05/mysql-alter-charset.html

MySQL中默认字符集的设置有四级:服务器级,数据库级,表级 。最终是字段级 的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。所以我们建议要用show create table table ; 或show full fields from tableName; 来检查当前表中字段的字符集设置。


如果两个表的字段字符集不一致会报如下错误:

ERROR 1267 (HY000): Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='



解决方法

show create table table1;

show create table table2;

查看其字段的字符集是否一样,不一样直接按下面的方法改成一样就解决问题




修改数据库字符集:



ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];


把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:



ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;


只是修改表的默认字符集:



ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


修改字段的字符集:



ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;


查看数据库编码:



SHOW CREATE DATABASE db_name;


查看表编码:



SHOW CREATE TABLE tbl_name;


查看字段编码:



SHOW FULL COLUMNS FROM tbl_name;