修改mysql的数据编码格式

在mysql中插入数据时出现

mysql> insert into user values ("1","李红","23","吉林长春","2");

ERROR 1366 (HY000): Incorrect string value: '\xE6\x9D\x8E\xE7\xBA\xA2' for column 'name' at row 1

 

 因为该列中插入的是中文,所以要修改表user的编码格式

用alter table user default character set utf8;修改

用 show create table user;查询

mysql> alter table user default character set utf8;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> show create table user;
| Table | Create Table                                                                                                               
| user  | CREATE TABLE `user` (
  `id` int(11) DEFAULT NULL,
  `name` char(16) CHARACTER SET latin1 DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `address` char(32) CHARACTER SET latin1 DEFAULT NULL,
  `wage` tinyint(4) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
1 row in set (0.01 sec)

 

发现name列,和address列仍是latin1的编码格式

用下列两行修改两列的编码格式,

char(16) character set utf8代表修改后的格式
alter table user modify name char(16) character set utf8;
alter table user modify address char(32) character set utf8;

如果需要改变列名,可以把modify name改为change name newname 

注意:在创建数据库时可修改整个数据库的数据编码格式

create database dbname  
character set 'utf8'  
;  

 

posted @ 2017-03-22 23:37  牛郑焜  Views(275)  Comments(0Edit  收藏  举报