赞
踩
今天在日常维护中遇到几个个小问题,比较有意思
1. 在数据迁移后,重新数据失败,发现报错
ERROR 1136 (21S01): 。。。。。
2. 在接口调用时,发现查询效率极其低下,估计是索引失效
这里新建一个表复现一下
目录
新建一个test数据库以及一个emp表
create table emp(
依次展开故事
此时insert插入数据
insert into emp values(1,'张三',12,'男'),(2,'李四',18,'女');
会发现报一个错
1366,这个错误就是在mysql表中有一个或者多个字段的编码不是utf-8
解决:
通过show create table emp 查看,发现数据表中的内容为latin1字符集
于是,给这张表重新设置字符集
alter table emp default character set utf8;
然后,重新去插入数据
依然报错,查看建表语句,发现字符集确实是utf8
是因为表设置了,但是行依然是latin1字符集
给行也设置
alter table emp change gender gender varchar(20) character set utf8;
此时再去插入就OK了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。