标签:
昨天把mysql里所有table的varchar字段的字符集,批量换成了utf8mb4/utf8mb4_unicode_ci ,以便能保存一些emoji火星文 , 结果有一个sql语句执行时,报错如下:
Illegalmixofcollations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)foroperation ‘=
观察了一下,这个sql使用了一个自定义的function,这个函数的入口参数为varchar,类似如下:
CREATE FUNCTION `f_xxx`( p_ref_type VARCHAR(50) , ... )
问题就在这里,把p_ref_type的参数类型改成:
CREATE FUNCTION `f_xxx`( p_ref_type VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, ... )
就ok了。
标签:
原文地址:http://www.cnblogs.com/yjmyzz/p/5088109.html