mysql 数据值 ,字符集错误

ERROR 1366 (HY000): Incorrect string value: ‘\xE8\xB5\xB5\xE9\x9B\xB7’ for column ‘Sname’ at row 1
错误描述

我的操作步骤:
1、创建数据库test,语句:
create database test;
2、创建Student表:
create table Student(SId varchar(10),Sname varchar(10),Sage datetime,Ssex varchar(10));
3、插入数据:
insert into Student values(‘01’ , ‘赵雷’ , ‘1990-01-01’ , ‘男’);
insert into Student values(‘02’ , ‘钱电’ , ‘1990-12-21’ , ‘男’);

然后报错:

ERROR 1366 (HY000): Incorrect string value: ‘\xE8\xB5\xB5\xE9\x9B\xB7’ for column ‘Sname’ at row 1
就是说Sname列的数据值的字符集不正确。

解决方案:

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

我们先查看一下Student数据表的字符集:
在mysql所在数据库输入命令行:show create table Student;
效果展示:

可以发现,字段的字符集和数据表的字符集是不一致的,原因找到了!!
我们把字段的字符集改成utf-8,与数据表一致,命令:
alter table Student change Sname Sname char(10) character set utf-8;
alter table Student change Ssex Ssex char(10) character set utf-8;

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

最后总结:

首先进入Mysql客户端

查看mysql的字符集(直接粘去用):show variables where Variable_name like ‘%char%’;
查看某一个数据库字符集:show create database test;(注:test为数据库)
查看某一个数据表字符集:show create table Student;(注:Student为数据表)

修改mysql的字符集:
mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_system=utf8;
mysql> set collation_connection=utf8;

修改数据库的字符集:
alter database test character set utf8;
修改数据表的字符集:
alter table Student character set utf8;
修改数据表字段的字符集:
alter table Student change Sname Sname varchar(10) character set utf-8;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值