背景
当执行数据库脚本时出现如下问题,无法插入数据。
[HY000][1366] Incorrect string value: '\xE8\x8B\xA5\xE4\xBE\x9D...' for column 'dept_name' at row 1
问题分析解决
新建数据库时未考虑字符集,不同环境下新建数据库默认字符集可能是不一样的,这时出现问题需要查看和修改字符集
查看数据库字符集
-- 查看数据库信息,包含字符集
select * from information_schema.SCHEMATA s where SCHEMA_NAME = '数据库名称';
修改数据库字符集
-- 修改数据库字符集为utf8
alter database ryvue character set utf8;
查看数据库的表字符集
-- 查看表信息,包含字符集
show table status from 数据库名称;
修改数据库的表字符集
-- 修改表的字符集
alter table 表名称 convert to character set utf8;
查看数据库表的列字符集
-- 查看表中所有列的字符集
show full columns from 表名称;
补充说明
设置字符集一般有两种方法,一种是在创建表的时候设置字符集,另一种是表建成之后修改字符集。可自行百度获取答案
本文介绍了在执行数据库脚本时遇到的错误:[HY000][1366]Incorrect string value,并分析了该问题源于新建数据库时未考虑字符集。提供了查看和修改数据库及表字符集的方法,包括使用`information_schema.SCHEMATA`查询数据库信息,使用`ALTER DATABASE`修改数据库字符集,`SHOW TABLE STATUS`查看表信息,以及`ALTER TABLE`修改表的字符集和列字符集。此外,还提醒设置字符集的两种方式:创建表时设定和后期修改。

被折叠的 条评论
为什么被折叠?



