本文介绍: 1.“CHARSET” 是字符集的意思,它定义用于存储检索数据字符集。这对于包含西欧字符数据比较合适。varchar(100) DEFAULT NULL COMMENT ‘样式属性(其他样式扩展)’,varchar(100) DEFAULT NULL COMMENT ‘样式属性(其他样式扩展)’,varchar(100) DEFAULT NULL COMMENT ‘样式属性(其他样式扩展)’,varchar(100) DEFAULT NULL COMMENT ‘样式属性(其他样式扩展)’,

当在sys_dict_data表中执行插入语句

insert into sys_dict_data values(1,  1,  '男',       '0',       'sys_user_sex',        '',   '',        'Y', '0', 'admin', sysdate(), '', null, '性别男');

报错信息如下:

insert into sys_dict_data values(1,  1,  '男',       '0',       'sys_user_sex',        '',   '',        'Y', '0', 'admin', sysdate(), '', null, '性别男')
> 1366 - Incorrect string value: 'xE7x94xB7' for column 'dict_label' at row 1
时间: 0.001s

报错解释:在向sys_dict_data表中的插入数据时,字段dict_label,不支持UTF-8编码

验证:查看

SHOW CREATE TABLE sys_dict_data;

结果如下:

CREATE TABLE sys_dict_data (
dict_code bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘字典编码’,
dict_sort int(4) DEFAULT ‘0’ COMMENT ‘字典排序’,
dict_label varchar(100) DEFAULT ‘’ COMMENT ‘字典标签’,
dict_value varchar(100) DEFAULT ‘’ COMMENT ‘字典键值’,
dict_type varchar(100) DEFAULT ‘’ COMMENT ‘字典类型’,
css_class varchar(100) DEFAULT NULL COMMENT ‘样式属性(其他样式扩展)’,
list_class varchar(100) DEFAULT NULL COMMENT ‘表格回显样式’,
is_default char(1) DEFAULT ‘N’ COMMENT ‘是否默认(Y是 N否)’,
status char(1) DEFAULT ‘0’ COMMENT ‘状态(0正常 1停用)’,
create_by varchar(64) DEFAULT ‘’ COMMENT ‘创建者’,
create_time datetime DEFAULT NULL COMMENT ‘创建时间’,
update_by varchar(64) DEFAULT ‘’ COMMENT ‘更新者’,
update_time datetime DEFAULT NULL COMMENT ‘更新时间’,
remark varchar(500) DEFAULT NULL COMMENT ‘备注’,
PRIMARY KEY (dict_code)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT=‘字典数据表

1.“CHARSET” 是字符集的意思,它定义了用于存储检索数据字符集。 “latin1” 是一种字符集,它支持包括英文字母数字、特殊字符等在内的基本西欧字符

2.在数据库设置 “CHARSET=latin1” 表示您正在使用 latin1 字符集存储检索数据。这对于包含西欧字符数据比较合适。

3.需要注意的是,latin1 字符集不支持诸如中文、日文等非西欧字符。如果您需要存储这类字符,可能需要选择支持多字节字符集(如 UTF-8)的数据库

解决方案

修改字符集,把sys_dict_data 表的字符集进行修改语句如下)

ALTER TABLE sys_dict_data CONVERT TO CHARACTER SET utf8; --修改表的字符集

在这里插入图片描述

再看表结果:

CREATE TABLE sys_dict_data (
dict_code bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘字典编码’,
dict_sort int(4) DEFAULT ‘0’ COMMENT ‘字典排序’,
dict_label varchar(100) DEFAULT ‘’ COMMENT ‘字典标签’,
dict_value varchar(100) DEFAULT ‘’ COMMENT ‘字典键值’,
dict_type varchar(100) DEFAULT ‘’ COMMENT ‘字典类型’,
css_class varchar(100) DEFAULT NULL COMMENT ‘样式属性(其他样式扩展)’,
list_class varchar(100) DEFAULT NULL COMMENT ‘表格回显样式’,
is_default char(1) DEFAULT ‘N’ COMMENT ‘是否默认(Y是 N否)’,
status char(1) DEFAULT ‘0’ COMMENT ‘状态(0正常 1停用)’,
create_by varchar(64) DEFAULT ‘’ COMMENT ‘创建者’,
create_time datetime DEFAULT NULL COMMENT ‘创建时间’,
update_by varchar(64) DEFAULT ‘’ COMMENT ‘更新者’,
update_time datetime DEFAULT NULL COMMENT ‘更新时间’,
remark varchar(500) DEFAULT NULL COMMENT ‘备注’,
PRIMARY KEY (dict_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=‘字典数据表

接着我们执行插入语句可以看到成功执行
当在sys_dict_data表中执行插入语句;

insert into sys_dict_data values(1,  1,  '男',       '0',       'sys_user_sex',        '',   '',        'Y', '0', 'admin', sysdate(), '', null, '性别男');

报错信息如下:

insert into sys_dict_data values(1,  1,  '男',       '0',       'sys_user_sex',        '',   '',        'Y', '0', 'admin', sysdate(), '', null, '性别男')
> 1366 - Incorrect string value: 'xE7x94xB7' for column 'dict_label' at row 1
时间: 0.001s

报错解释:在向sys_dict_data表中的插入数据时,字段dict_label,不支持UTF-8编码;

验证:查看

SHOW CREATE TABLE sys_dict_data;

结果如下:

CREATE TABLE sys_dict_data (
dict_code bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘字典编码’,
dict_sort int(4) DEFAULT ‘0’ COMMENT ‘字典排序’,
dict_label varchar(100) DEFAULT ‘’ COMMENT ‘字典标签’,
dict_value varchar(100) DEFAULT ‘’ COMMENT ‘字典键值’,
dict_type varchar(100) DEFAULT ‘’ COMMENT ‘字典类型’,
css_class varchar(100) DEFAULT NULL COMMENT ‘样式属性(其他样式扩展)’,
list_class varchar(100) DEFAULT NULL COMMENT ‘表格回显样式’,
is_default char(1) DEFAULT ‘N’ COMMENT ‘是否默认(Y是 N否)’,
status char(1) DEFAULT ‘0’ COMMENT ‘状态(0正常 1停用)’,
create_by varchar(64) DEFAULT ‘’ COMMENT ‘创建者’,
create_time datetime DEFAULT NULL COMMENT ‘创建时间’,
update_by varchar(64) DEFAULT ‘’ COMMENT ‘更新者’,
update_time datetime DEFAULT NULL COMMENT ‘更新时间’,
remark varchar(500) DEFAULT NULL COMMENT ‘备注’,
PRIMARY KEY (dict_code)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT=‘字典数据表

1.“CHARSET” 是字符集的意思,它定义了用于存储检索数据的字符集。 “latin1” 是一种字符集,它支持包括英文字母数字、特殊字符等在内的基本西欧字符。

2.在数据库设置 “CHARSET=latin1” 表示您正在使用 latin1 字符集来存储检索数据。这对于包含西欧字符的数据比较合适。

3.需要注意的是,latin1 字符集不支持诸如中文、日文等非西欧字符。如果您需要存储这类字符,可能需要选择支持多字节字符集(如 UTF-8)的数据库

解决方案

修改字符集,把sys_dict_data 表的字符集进行修改(语句如下)

ALTER TABLE sys_dict_data CONVERT TO CHARACTER SET utf8; --修改表的字符集

再看表结果:

CREATE TABLE sys_dict_data (
dict_code bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘字典编码’,
dict_sort int(4) DEFAULT ‘0’ COMMENT ‘字典排序’,
dict_label varchar(100) DEFAULT ‘’ COMMENT ‘字典标签’,
dict_value varchar(100) DEFAULT ‘’ COMMENT ‘字典键值’,
dict_type varchar(100) DEFAULT ‘’ COMMENT ‘字典类型’,
css_class varchar(100) DEFAULT NULL COMMENT ‘样式属性(其他样式扩展)’,
list_class varchar(100) DEFAULT NULL COMMENT ‘表格回显样式’,
is_default char(1) DEFAULT ‘N’ COMMENT ‘是否默认(Y是 N否)’,
status char(1) DEFAULT ‘0’ COMMENT ‘状态(0正常 1停用)’,
create_by varchar(64) DEFAULT ‘’ COMMENT ‘创建者’,
create_time datetime DEFAULT NULL COMMENT ‘创建时间’,
update_by varchar(64) DEFAULT ‘’ COMMENT ‘更新者’,
update_time datetime DEFAULT NULL COMMENT ‘更新时间’,
remark varchar(500) DEFAULT NULL COMMENT ‘备注’,
PRIMARY KEY (dict_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=‘字典数据表

接着我们执行插入语句–可以看到成功执行
在这里插入图片描述

原文地址:https://blog.csdn.net/u010553139/article/details/134689688

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_7045.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注