为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL 在简单的 INSERT 上非法混合了用于操作“=”的排序规则

MySQL 在简单的 INSERT 上非法混合了用于操作“=”的排序规则

绝地无双 2021-09-15 14:48:21
有很多关于 inSELECT和INSERT * SELECTstatements 的排序规则混合的问题。我的是一个简单的INSERT,除了数据没有添加任何东西。过程中产生的错误是:操作 '=' 的排序规则 (utf8_unicode_ci,IMPLICIT) 和 (utf8_general_ci,IMPLICIT) 的非法混合所有字段名和表名都已简化。正在执行的查询是:INSERT INTO table1 (`a`,`b`,`c`,`d`,`e`,`f`,`g`,`h`,`i`,`j`) VALUES (?,?,?,?,?,?,?,?,?,?);```它已经准备好接收一些由 Java 进程和 JDBI 引入的数据。底层表没有什么奇怪的。它们的 DDL 如下所示。CREATE TABLE `table1` (  `a` varchar(32) COLLATE utf8_unicode_ci NOT NULL,  `b` varchar(6) COLLATE utf8_unicode_ci DEFAULT NULL,  `c` varchar(32) COLLATE utf8_unicode_ci NOT NULL,  `d` varchar(32) COLLATE utf8_unicode_ci NOT NULL,  `e` varchar(32) COLLATE utf8_unicode_ci NOT NULL,  `f` int(11) DEFAULT NULL,  `g` text COLLATE utf8_unicode_ci,  `h` bigint(20) DEFAULT NULL,  `i` bigint(20) DEFAULT NULL,  `j` datetime DEFAULT NULL,  `k` timestamp NULL DEFAULT CURRENT_TIMESTAMP,  PRIMARY KEY (`a`,`e`),  KEY `c` (`c`,`d`),  CONSTRAINT `fk_1` FOREIGN KEY (`a`) REFERENCES `table2` (`a2`),  CONSTRAINT `fk_2` FOREIGN KEY (`c`, `d`) REFERENCES `table3` (`a3`, `b3`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ciCREATE TABLE `table2` (  `a2` varchar(32) COLLATE utf8_unicode_ci NOT NULL,  `b2` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,  `c2` mediumtext COLLATE utf8_unicode_ci,  `d2` mediumtext COLLATE utf8_unicode_ci,  `e2` bigint(11) DEFAULT '0',  PRIMARY KEY (`a2`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ciCREATE TABLE `table3` (  `a3` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,  `b3` varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,  PRIMARY KEY (`a3`,`b3`)) ENGINE=InnoDB DEFAULT CHARSET=utf8可以看出,我完全无法理解排序规则。是否有可能是来自 Java 世界的数据导致了这种情况?它可能与当前连接会话变量有关吗?
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

我找到了罪魁祸首。此表上有一个 TRIGGER 引用另一个模式中的另一个表。触发器语句中存在冲突,这无助于错误消息没有提及此类事实。

那回答

一个简单的 INSERT 语句中怎么会有排序规则混淆?

有一个伴随 INSERT 的触发器


查看完整回答
反对 回复 2021-09-15
  • 1 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信