MySQL插入数据时,出现 1366 Incorrect string value 错误

本文详细讲述了如何通过排查数据库编码问题,将Collation项从latin1_swedish_ci修改为utf8_unicode_ci,以解决数据插入失败的问题。通过实例展示修改过程,并分享创建数据库时指定编码避免此类问题的方法。
摘要由CSDN通过智能技术生成

1、通过查询排错发现,是对应列的编码不符合规范,使用的默认latin1_swedish_ci格式,需要把Collation项编码为修改为utf8_unicode_ci。

2、有解决方法说是改数据库和数据表的格式为utf8或者utf8mb4,但是测试过后无效。下面把操作贴图在下面,使用navicat工具

3、本人原因:就是在创建数据库的时候没有直接指定编码格式,后边再修改也不好使,如果再创建数据库的时候就指定就不会出现这样的错误。加上character set utf8就不会出问题了,但是没搞懂为什么后面再修改添加也不行。

create database db character set utf8;

①插入数据出现错误

 ② 使用show full columns from 表名;查看数据表列编码

③ Collation项编码为latin1_swedish_ci 修改为utf8_unicode_ci

使用alter table 表名 change 列名 列名 varchar(自己设置) character set utf8 collate utf8_unicode_ci not null default ‘’;的格式

 

④修改成功之后重新插入数据,插入成功

 

写在最后:

        目前只找到这一种解决办法,如果还有其它的方法,欢迎大家帮我更正,此解决办法非原创,是在网上查找各种方法之后,找到能解决我的问题的一种做了总结。

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值