当前位置: 首页 > 知识库问答 >
问题:

如何修复“操作'='的排序规则(utf8_unicode_ci,隐式)和(utf8_general_ci,隐式)的非法混合”

呼延辰龙
2023-03-14

在my remove服务器上执行MySQL中的存储过程,如下所示:

CREATE OR REPLACE PROCEDURE `SetNextPage`(
    IN `inRefNo` varchar(30) COLLATE utf8_general_ci,
    IN `inStage` varchar(40) COLLATE utf8_general_ci,
    IN `inRedirectTo` varchar(50) COLLATE utf8_general_ci,
    IN `inSurveyType` varchar(14) COLLATE utf8_general_ci
)
BEGIN
    IF inSurveyType = 'preinspection' THEN
        UPDATE preinspections SET Stage = inStage, RedirectTo = inRedirectTo WHERE RefNo = inRefNo;
    ELSE
        UPDATE surveys SET Stage = inStage, RedirectTo = inRedirectTo WHERE RefNo = inRefNo;
    END IF;
END

我收到错误消息如下:

操作“=”的排序规则(utf8_unicode_ci,隐式)和(utf8_general_ci,隐式)的非法混合

SELECT TABLE_NAME, TABLE_COLLATION
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="mydatabase" AND TABLE_TYPE="BASE TABLE";

SHOW VARIABLES WHERE Variable_name LIKE ("character%") OR Variable_name LIKE ("Collation%");

要使存储过程运行,应该进行哪些更改?

共有1个答案

桂浩言
2023-03-14

执行显示创建过程SetNextPage\g

您可能会发现,定义proc时有效的字符集和/或排序规则并不是您现在想要的。

或者更改连接的排序规则,或者删除进程,设置名称,然后重新创建进程。

 类似资料:
  • 在我的remove服务器上执行MySQL中的存储过程时,如下所示: 我收到的错误消息为: 操作“=”的排序规则(utf8_unicode_ci,IMPLICIT)和(utf8_general_ci,IMPLICIT)的非法混合 下面是我的数据库中带有查询的表的屏幕截图,如下所示: 这个表quick_tables.bck只是因为名字中的.bck而卡在那里。但它并不存在于我的代码中。 下面是带有SQL

  • 问题内容: MySql上的错误消息: 我浏览了其他几篇文章,但无法解决此问题。受影响的部分与此类似: 我正在使用的存储过程是这样的: 我在用php测试,但是SQLyog给出了相同的错误。我还测试了重新创建整个数据库,但效果不佳。 任何帮助都感激不尽。 问题答案: 存储过程参数的默认排序规则为并且您不能混合排序规则,因此有四个选项: 选项1 :添加到您的输入变量中: 选项2 :在条款中添加: 选项3

  • 本文向大家介绍ANTLR 隐式词法规则,包括了ANTLR 隐式词法规则的使用技巧和注意事项,需要的朋友参考一下 示例 当'{'在解析器规则中使用like标记时,将为它们创建隐式词法分析器规则,除非存在显式规则。 换句话说,如果您有词法分析器规则: 然后,这两个解析器规则都是等效的: 但是,如果OPEN_BRACE是词法规则没有定义,一个隐含的匿名规则将被创建。在这种情况下,隐含的规则将被定义为,如

  • 2. 隐含规则和模式规则 上一节的Makefile写得中规中矩,比较繁琐,是为了讲清楚基本概念,其实Makefile有很多灵活的写法,可以写得更简洁,同时减少出错的可能。本节我们来看看这样一个例子还有哪些改进的余地。 一个目标依赖的所有条件不一定非得写在一条规则中,也可以拆开写,例如: main.o: main.h stack.h maze.h main.o: main.c gcc -c ma

  • 问题内容: 查看我的产品日志后,我提到了一些错误: Alghout我在cfg教义下拥有UTF-8默认值: 看来我所有的MySQL表都在其中,所以我的问题是: 我可以为所有表手动将排序规则更改为,而没有任何复杂性/注意事项吗? 问题答案: 了解以下定义会有所帮助: 甲 字符编码 信息的每个符号是如何以二进制表示(并因此存储在计算机)。例如,符号(U + 00E9,拉丁小字母E急性)被编码为在UTF-

  • Makefile有很多灵活的写法,可以写得更简洁,同时减少出错的可能。本节我们来看看这样一个例子还有哪些改进的余地。 一个目标依赖的所有条件不一定非得写在一条规则中,也可以拆开写,例如: main.o: main.h stack.h maze.h main.o: main.c gcc-c main.c 就相当于: main.o: main.c main.h stack