错误提示:
ERROR 1366 (HY000): Incorrect string value: ‘\xE6\x9D\x8E\xE5\x8B\x87’ for column ‘Sname’ at row 1
前提:
创建的表如下:
创建学生表Student
CREATE TABLE Student
(Sno CHAR(10) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20));
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
**插入中文时错误提示:
中文:**错误1366(hy000):第1行“sname”列的字符串值不正确:\xe6\x9d\x8e\xe5\x8b\x87
解释:
已建立的表无法插入中文字符串,原因是因为数据表中的内容为latin1字符集,由下图的的资料可知,latin1字符集为8bit,这说明它是不能表示中文的,故而当然会报改错:
解决办法:
1、 首先通过语句查看: show create table Student;
2、 发现如下所示:
3、 然后通过语句修改数据表编码:alter table Student default character set utf8;
4、 但是修改后仍然出现错误。
5、 我们再次查看编码:show create table Student ;
6、 发现如下所示:
7、 注意 Student 的编码仍然为 latin1 ,虽然此时表的编码已经是 utf8 , 但是不知道为什么 列的编码没有更改过来
8、 下面就是更改列的编码即可
alter table Student change Sname Sname varchar(20) character set utf8;
小结:
查看数据表的编码:
show create table Student;
- 1
修改表的编码方式:
alter table Student default character set utf8;
该命令用于将表Student的编码方式改为utf8;
- 1
- 2
- 3
修改字段的编码方式:
alter table Student change Sname Sname varchar(20) character set utf8;
(注意看截图)
该命令用于将表Student中Sname字段的编码方式改为utf8
- 1
- 2
- 3
改其他项同理
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet">
</div>
</article>