存储过程报错1267

来源:互联网 发布:js比较数值大小 编辑:程序博客网 时间:2024/06/06 02:25

2017/11/02
今天重新在原数据不动的情况下,重新写了存储过程,没有一点语法错误
但是!!
存储过程竟然报错

1267 - Illegal mix of collations(utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation ‘=

试了很多方法,最后:
实在没有办法,

  1. mysql 配置文件my.ini 中,把所有编码格式都改为 utf8,所有字符排序格式都改为utf8-general-ci(到这一步存储过程还是不能跑)
  2. 关键是因为数据是从原来的数据库直接拷过来,猜想估计是数据表的有问题,遂把数据表都进行编码,排序规则转换。
alter table `dbname`.`tablename` convert to character set utf8 collate utf8_general_ci;

最后果然行了,bingo!!!