当我用python 向MySQL插入数据时 发现出现了1366错误提示(如下图)
这是为什么呢。怎么回出现这个错误呢,这是因为我们插入的数据编码格式是utf-8 而我们数据表的编码格式并不是utf-8所以才会出现这种错误
有时我们在创建数据表时没有指定表的默认编码格式,直接创建的
create table city58(
name varchar(500),
companyname varchar(500),
salary varchar(50),
type varchar(50)
);
这样系统会给我们指定一个默认的编码格式
输入以下代码查看表的编码格式
show create table city58;
由于插入数据的编码和创建表的默认编码不一致所以出现了1366错误,我们应该重新创建表并指定默认表的编码格式为utf-8
create table city58(
name varchar(500),
companyname varchar(500),
salary varchar(50),
type varchar(50)
)
DEFAULT CHARSET=UTF8;
这时我就可以正确的插入数据了
网上也有一些修改表的默认编码格式的语句但我测试了下并不生效,
alter table city58 character set UTF8;
上面的代码我执行了但并不能改变表的默认编码格式。也许是其他原因。大家可以试试。