【MySQL】java.sql.SQLException: Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='
问题原因参考:
http://t.zoukankan.com/zhulei2-p-13451554.html
collations 排序规则
Illegal mix 非法混合
SQL报错指出,操作符等号,非法混合了不同的字符集
我先看看库字符集设定:
然后再看看两张表的:
CREATE TABLE `tm_company` (
`COMPANY_ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'DEALER_ID',
`APP_ID` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`COMPANY_CODE` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公司代码',
`COMPANY_TYPE` int(8) NOT NULL COMMENT '公司类型:1506,和org表org_type相同',
`COMPANY_NAME_CN` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '公司中文全称',
`COMPANY_NAME_EN` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '公司英文全称',
`COMPANY_SHORT_NAME_CN` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '公司简称中文',
`COMPANY_SHORT_NAME_EN` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '公司简称英文',
`PROVINCE_ID` int(11) DEFAULT NULL COMMENT '省份',
`PROVINCE_NAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '省份',
`CITY_ID` int(11) DEFAULT NULL COMMENT '城市',
`CITY_NAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '城市',
`COUNTY_ID` int(11) DEFAULT NULL COMMENT '所在区县',
`COUNTY_NAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所在区县',
`ADDRESS_CN` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '公司地址中文',
`ADDRESS_EN` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '公司地址英文',
`COMPANY_KIND` int(8) DEFAULT NULL COMMENT '经销商类型2538:4S店、单一销售、单一售后、直营店、非直营、大客户',
`USED_COMPANY_CODE` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '曾用经销商code',
`TRANSFER_COMPANY_CODE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '转为经销商code',
`ORG_ID` bigint(20) DEFAULT NULL COMMENT '组织ID,与组织表对应',
`GROUP_ORG_ID` bigint(20) DEFAULT NULL COMMENT '所属集团的组织ID',
`VALID_STATUS` int(8) DEFAULT NULL COMMENT '有效状态:1001',
`DATA_TYPE` int(8) DEFAULT NULL COMMENT '数据类型1046:经销商、集团、车厂',
`COMPANY_PROPERTITY` int(8) DEFAULT NULL COMMENT '经销商属性(普通/车厂虚拟/区域虚拟)',
`LINK_MAN` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '联系人',
`PHONE` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '联系电话',
`ZIP_CODE` varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '邮编',
`FAX` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '传真',
`E_MAIL` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'E_MAIL',
`LATITUDE` double(28,20) DEFAULT NULL COMMENT '经度',
`LONGITUDE` double(28,20) DEFAULT NULL COMMENT '维度',
`COMPANY_HOMEPAGE` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '公司主页',
`OPEN_DATE` date DEFAULT NULL COMMENT '开业日期',
`CLOSE_DATE` date DEFAULT NULL COMMENT '停业日期',
`CREATED_DATE` date DEFAULT NULL COMMENT '建站日期',
`IS_USED_CAR` tinyint(4) DEFAULT NULL COMMENT '是否经营二手车1004',
`STATUS` int(8) DEFAULT NULL COMMENT ' 业务显示:待开业,已开业,停业',
`REMARK` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
`DEALER_COUNT` int(4) DEFAULT NULL COMMENT '经销商店数量',
`IS_MAIN` int(8) DEFAULT NULL COMMENT '是否主店:多家经销商渠道的时候区分哪个主店',
`BUSINESS_BEGIN_HOURS` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '营业开始时间',
`BUSINESS_END_HOURS` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '营业结束时间',
`CHANNEL_PICTURE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '经销商图片',
`USER_ID` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '管理员ID',
`OLD_DEALER_CODE` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'CDK DMS 代码',
`RECORD_VERSION` int(11) NOT NULL DEFAULT '0' COMMENT 'RECORD_VERSION',
`CREATED_BY` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '-1' COMMENT 'CREATED_BY',
`CREATED_AT` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'CREATED_AT',
`UPDATED_BY` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '-1' COMMENT 'UPDATED_BY',
`UPDATED_AT` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'UPDATED_AT',
`IS_DELETED` tinyint(4) NOT NULL DEFAULT '0',
`IS_SATELLITE_STORE` int(8) DEFAULT '10041002' COMMENT '是否卫星店',
`OWNED_COMPANY_NAME` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所属经销商',
PRIMARY KEY (`COMPANY_ID`) USING BTREE,
UNIQUE KEY `AK_TM_COMPANY_10` (`APP_ID`,`COMPANY_CODE`) USING BTREE,
KEY `IDX_TM_COMPANY_10` (`ORG_ID`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1273161411814670341 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='公司表,车厂、经销商公司、经销商集团等';
专属价格表:
CREATE TABLE `tm_part_own_price` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`OWNER_CODE` varchar(36) DEFAULT NULL COMMENT '所有者代码(经销商?)',
`PART_NO` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '配件代码',
`OWN_PRICE` decimal(10,2) DEFAULT NULL COMMENT '专属价格',
`BEGIN_AT` datetime DEFAULT NULL COMMENT '开始时间',
`END_AT` datetime DEFAULT NULL COMMENT '结束时间',
`CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`CREATE_BY` bigint(20) DEFAULT NULL COMMENT '创建者代码',
`UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
`UPDATE_BY` bigint(20) DEFAULT NULL COMMENT '更新者代码',
`RECORD_VERSION` bigint(11) DEFAULT NULL COMMENT '乐观锁记录',
PRIMARY KEY (`ID`),
KEY `IDX_OWNER_CODE` (`OWNER_CODE`) USING BTREE COMMENT '所有者代码索引',
KEY `IDX_PART_NO` (`PART_NO`) USING BTREE COMMENT '配件代码索引'
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='配件专属价格表';
专属表是我自己写的,默认走库的字符集,但是tm_company表是复制过来的,字符集和库和我的表不一致
要解决这个报错就是统一一致的字符集设定,鉴于库是900_ai_ci,应该是更改company表的字符集
但是随后发现还是报这个错误:
除了表级别的字符集,字段级别的也有设置字符集
连表的条件:
tm_part_own_price price
JOIN tm_company coop ON price.OWNER_CODE = coop.COMPANY_CODE
查看链表的字段字符集:
`COMPANY_CODE` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公司代码',
`OWNER_CODE` varchar(36) DEFAULT NULL COMMENT '所有者代码(经销商?)',
OWNER_CODE没有设置,默认跟表字符集一起是900_ai_ci,而company表还是general_ci
再找到字段进行修改,这时终于正常了
【MySQL】java.sql.SQLException: Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='的更多相关文章
- java.sql.SQLException: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 异常处理,及MySQL数据库编码设置
java.sql.SQLException: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,C ...
- java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='
查询视图时报错:java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_ ...
- 【MySQL】java.sql.SQLException: The server time zone value
错误:Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: The se ...
- 【MySQL】java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\xB3' for column
问题原因: 输入内容包含特殊字符,MySQL 中的列不支持. 解决方法 多数是修改 MySQL 的数据库和表结构,CHARSET 改为 utf8mb4,但本人测试还是不能传入 emoji. 后来在代码 ...
- 【JDBC】java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
在使用阿里的druid 时,报了一个异常java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized ...
- 【异常】java.sql.SQLException: Could not retrieve transaction read-only status from server Query
1 详细异常 java.sql.SQLException: Could not retrieve transaction read-only status , ], [ChargingOrderRea ...
- 【转】java.sql.SQLException: statement is closed语句被关闭 druid连接池报错
我之前在用druid 1.0.28版本也出现过这个问题, 现象就是: 报这个错的时候, 往往会出现在一条毫无错误的sql执行上报错, sql放到数据库上执行或者单独拎出来执行完全没问题, 但是为什么 ...
- java.sql.SQLException: Illegal connection port value '3306:success'
严重: Servlet.service() for servlet jsp threw exceptionjava.sql.SQLException: Illegal connection port ...
- 【SQL】 java.sql.SQLException: You can't specify target table 'emp' for update in FROM clause
在执行sql: delete from emp where id in (select id from emp where cdate<'2018-02-02') 时报出以下异常: ### Th ...
- 【MySQL】为什么SQL会这么慢
建表 CREATE TABLE `ts_ab` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NULL, `b` varchar(20) CHARACTER ...
随机推荐
- react路由渲染
三种渲染方式 component = (组件对象或函数) <Route path="/home" component={Home} /> 或 <Route pat ...
- json 对象属性的输出顺序测试,fastJson 有序,jackson,gson无序(需代码中人工按约定来编码)接口数据签名规则
json 对象属性的输出顺序测试,fastJson 有序,jackson,gson无序(需代码中人工按约定来编码)接口数据签名规则 fastJson会根据对象的字段的首字母来排序.而jackson,g ...
- 状态模式(Sate Pattern)
一.模式动机 状态模式(State Pattern)是一种较为复杂的行为型模式.它用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题.当系统中某个对象存在多个状态,这些状态之间可以进行转换, ...
- Android无障碍自动化结合opencv实现支付宝能量自动收集
Android无障碍服务可以操作元素,手势模拟,实现基本的控制.opencv可以进行图像识别.两者结合在一起即可实现支付宝能量自动收集.opencv用于识别能量,无障碍服务用于模拟手势,即点击能量. ...
- Spark Structured Streaming(一)基础
1. 流处理的场景 我们在定义流处理时,会认为它处理的是对无止境的数据集的增量处理.不过对于这个定义来说,很难去与一些实际场景关联起来.在我们讨论流处理的优点与缺点时,先介绍一下流处理的常用场景. 通 ...
- 原生js实现下拉框可输入
js实现下拉框可输入 前言 众所周知,html默认的下拉框是无法输入值的,然后最新的办法是用datalist和输入框绑定,但是很多浏览器不支持.然后还有很多框架提供的下拉框都是可输入的.但是公司的项目 ...
- .NET 个人博客-给图片添加水印
个人博客-给图片添加水印 前言 需要用到的库 SixLabors.lmageSharp 2.1.3 SixLabors.lmageSharp.Web 2.0.2 SixLabors.Fonts 1.0 ...
- Hadoop集群管理之fsimage和edits工作机制
客户端对hdfs进行写文件时会首先被记录在edits文件中. edits修改时元数据也会更新. 每次hdfs更新时edits先更新后客户端才会看到最新信息. fsimage:是namenode中关于元 ...
- 使用kafka作为生产者生产数据_到_hbase
配置文件: agent.sources = r1agent.sinks = k1agent.channels = c1 ## sources configagent.sources.r1.type = ...
- FSCTF 2023(公开赛道)WP
FSCTF 2023 ID:Mar10 Rank:6 总结:下次看到不正常报错一定重新安装一遍工具~~ web 源码!启动! 就在源码注释里 <!-- 师傅们,欢迎来到CTF的世界~ NSSCT ...