Mysql控制台报错:Data truncation: Incorrect string value[ERROR 1366]解决方式


使用navicat直接插入数据,出现ERROR 1366。
出现的原因:在编写数据库表的时候,没有指定字符集,默认字符集为latin1,此时通过插入语句插入中文会报错。
解决方式:
直接运行以下的代码,将database和server的字符集改成utf8:

show variables like '%char%';
set character_set_server=utf8;
set character_set_database=utf8;

依然没有解决问题的话,查看表的具体字段的字符集,可以通过查看创建语句查看:

show create table 表名;

也可以用以下代码去查看每个字段的全部信息:

show full columns from 表名;

检查数据库此字段的字符集与整理字符集是否与SQL语句传递数据的字符集相同;不相同则会引发MySQL1366错误。

如果字段的character是latin1的话,将其改为utf8即可。
具体代码如下:

alter table 表名 modify `字段名` varchar(255) CHARACTER set utf8 collate utf8_general_ci not null default '';


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM