Mysql数据库插入数据时提示 1366 - Incorrect string value: ‘\xE5\xBC\xA0\xE4\xB8\x89‘ 报错

在部署的MySQL5.7.4数据库中,创建mydb数据库和department及employee表后,尝试插入数据时遇到1366错误,原因是数据库字符集非utf-8。解决方案是将数据库和表的字符集更改为utf-8,删除并重新创建表后,数据成功插入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

在部署完成了mysql5.7.4数据库服务之后创建了mydb数据库,然后创建了如下的表:

CREATE TABLE department(
  did int (4) NOT NULL PRIMARY KEY, 
  dname varchar(20)
);

CREATE TABLE employee (
  eid int (4) NOT NULL PRIMARY KEY, 
  ename varchar (20), 
  eage int (2), 
  departmentid int (4) NOT NULL
);

创建表完成之后去插入数据:

-- 向department表插入数据

INSERT INTO mydb.department(did,dname)VALUES(1001,'财务部');
INSERT INTO mydb.department(did,dname)VALUES(1002,'技术部');
INSERT INTO mydb.department(did,dname)VALUES(1003,'行政部');
INSERT INTO mydb.department(did,dname)VALUES(1004,'生活部');

-- 向employee表插入数据

INSERT INTO employee VALUES(1,'张三',19,1003);
INSERT INTO employee VALUES(2,'李四',18,1002);
INSERT INTO employee VALUES(3,'王五',20,1001);
INSERT INTO employee VALUES(4,'赵六',20,1004);

报错现象:

但是在执行插入的时候提示报错:

1366 - Incorrect string value: '\xE8\xB4\xA2\xE5\x8A\xA1...' for column 'dname' at row 1 

故障原因:

 出现这个问题的原因是mydb数据库的字符集编码、排序类型不是utf-8,所以创建时会报1366

检查mydb数据库的字符集和排序规则,确实不是utf-8的,所以需要将nydb数据库的字符集和排序规则修改为utf-8,就可以了。

 

切记,将已经创建的表,重新drop,再create一下就可以插入数据了。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiang0615csdn

你对鼓励是我最大的动力来源

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值