300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 插入数据报错: Incorrect string value: ‘\xE8\xB5\xB5\xE9\x9B\xB7‘ for column ‘Sname‘ at row 1

插入数据报错: Incorrect string value: ‘\xE8\xB5\xB5\xE9\x9B\xB7‘ for column ‘Sname‘ at row 1

时间:2020-03-08 02:15:09

相关推荐

插入数据报错: Incorrect string value: ‘\xE8\xB5\xB5\xE9\x9B\xB7‘ for column ‘Sname‘ at row 1

**问题:**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 utf8;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。