ERROR 1366 (HY000): Incorrect string value: ‘\xE8\xB5\xB5 \xE9\x9B...‘ for column ‘s_name‘ at row 1

解决MySQL字段中文插入报错问题

问题描述:
操作步骤:

1、创建数据库 deparkment;

create database deparkment;

2、创建 Student 表:

create table if not exists Student(

s_id varchar(20),

s_name varchar(20) not null default '',

s_birth varchar(20) not null default '',

s_sex varchar(10) not null default '',

primary key(s_id));

3、插入数据:      

insert into Student values ('01' , ' 赵雷 ' , '1990-01-01' , ' 男 '); 

然后报错:ERROR 1366 (HY000): Incorrect string value: '\xE8\xB5\xB5 \xE9\x9B...' for column 's_name' at row 1

s_name 列的数据值的字符集不正确。

效果展示:


解决方案:

分别查看数据库、表、报错列字段的字符集,错误就是由于三者不一致造成的,设置一致.
我们先查看一下 Student 数据表的字符集; 

在 mysql 所在数据库输入命令行:

show create table Student;

效果展示:

 
可以发现,字段的字符集和数据表的字符集是不一致的,原因找到了!! 我们把字段的字符集改成 utf8, 与数据表一致,命令:    

alter table Student change s_name s_name char (10) character set utf8;

alter table Student change s_sex s_sex char (10) character set utf8;

效果展示:

 

现在执行第 3 步的 insert into 命令就成功了。

insert into Student values ('01' , ' 赵雷 ' , '1990-01-01' , ' 男 '); 

效果展示:

最后总结:(提示:以下内容都需要首先进入 Mysql 客户端)

查看 mysql 的字符集 (直接粘去用):

show variables where Variable_name like '% char%';

查看某一个数据库字符集:

show create database deparkment;(注:deparkment 为数据库) 查看某一个数据表字符集:

show create table Student;(注:Student 为数据表)

修改 mysql 的字符集:

set character_set_client=utf8;

set character_set_connection=utf8;

set character_set_database=utf8;

set character_set_results=utf8;

set character_set_server=utf8;

修改数据库的字符集:

alter database test character set utf8; 

修改数据表字段的字符集:

alter table Student character set utf8;

alter table Student change s_name s_name char (10) character set utf8;

 

 

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值