MySQL的Illegal mix of collationsy异常原因和解决方法

MySQL的Illegal mix of collationsy异常原因和解决方法

 

原创 2008年12月25日 11:54:00
 

 今天在使用数据库临时表的游标时,发现了这个异常。
经查找资料,最终结果。这里和大家分享一下。 字符集问题还是一定要统一的才是最简单的。

create temporary table temp2(mc1 varchar(20) default ”,mc2 varchar(20)default ”,mc3 varchar(20)default ”,mc4 varchar(20)default ”,mc5 varchar(20)default ”,parentid varchar(20),levelnum int); — 生成临时表

declare mycur67 CURSOR for select concat(replace(space(levelnum-1),space(1),’——‘),mc1,mc2,mc3,mc4,mc5) as mc,parentid as location from temp2;

异常信息为:
Illegal mix of collations for operation ‘concat’

将concat的代码去掉后面的部分内容,运行结果为
declare mycur67 CURSOR for select concat(replace(space(levelnum-1),space(1),’——‘),mc1) as mc,parentid as location from temp2;

错误:Illegal mix of collations (utf8_general_ci,COERCIBLE) and (gb2312_chinese_ci,IMPLICIT) for operation ‘concat’

可见,是2个字段的编码类型不一致造成的。

原来我的数据库创建时,选择的是gb2312编码,而字段操作默认为UTF8的编码。 绝对统一使用UTF-8

create temporary table temp2(mc1 varchar(20) default ”,mc2 varchar(20)default ”,mc3 varchar(20)default ”,mc4 varchar(20)default ”,mc5 varchar(20)default ”,parentid varchar(20),levelnum int)DEFAULT CHARSET=UTF8;

运行结果正常。

经查找资料,如下说的很清楚
mysql> show variables like “%character%”; show variables like “%collation%”; +————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
7 rows in set (0.00 sec)

+———————-+——————-+
| Variable_name | Value |
+———————-+——————-+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+———————-+——————-+
3 rows in set (0.00 sec)

fix it with
set collation_database=utf8_general_ci;
set collation_connection=utf8_general_ci;
set collation_server=utf8_general_ci;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113606.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CAP的分区容错性

    CAP的分区容错性一直没有理解CAP中P的分区容错性是什么意思?系统部分节点出现故障后,连接正常节点还可以使用系统提供的服务

    2022年7月25日
    8
  • java的常量

    java的常量JAVA变量与常量常量常量值常量常量的声明定义常量常量在c语言编程网中的定义是指在程序的整个运行过程中值保持不变的量。在这里要注意常量和常量值是不同的概念,常量值是常量的具体和直观的表现形式,常量是形式化的表现。这里体现出常量值这一定义,我认为的常量值就是值,具体的某一数值百度出来的常量是定义为两种意思:一是不可变的变量,也是最最最开始接触java知道的,二如上。平时所说的值指的是常量值,常量是不可变的变量(用final修饰的变量)常量值提到常量值不得不说一下计数法,八进制、十进制、十六进制所代

    2022年7月8日
    22
  • PyQuery笔记

    PyQuery笔记1、初始化1.1、字符串初始化frompyqueryimportPyQueryaspyhtml=”’<div>  <ul>    <liclass="item-0">firstitem</li>    <liclass="item-1"><ahref="htt

    2022年4月29日
    38
  • MMC卡的详细介绍

    MMC卡的详细介绍1.了解MMC卡MMC卡是有由美国SANDISK公司和德国西门子公司在1997年共同开发研制的一种多功能存储卡。MMC卡采用7针的接口,主要应用于数码相机、手机和一些PDA产品上,价格相对较贵。MMC卡在一定程度上改善了CF卡读写速度较慢的缺点,并且体积轻巧,尺寸为32mm×24mm×1.4mm,重量不足2克。其抗冲击性强,可反复读写30万次。MMC卡4.0标准提供了更宽的数据

    2022年6月6日
    179
  • 写辅助脚本违法吗_网络游戏里的成功几率

    写辅助脚本违法吗_网络游戏里的成功几率转至http://www.cppblog.com/elva/archive/2008/02/19/42924.html一、前言  所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将。虽然,现在对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此发表任何个人意见,让时间…

    2022年10月8日
    0
  • 3D游戏模型是怎么制作出来的?[通俗易懂]

    现在游戏建模这个行业非常热门,因此有很多小伙伴梦想成为一名游戏模型师,但是很多都对这个工作需要做什么了解不深,这里我简单介绍一下我从事的3D游戏模型制作。1.我们都知道游戏模型制作肯定是需要建模的,建模是游戏设计中最重要的环节,占整个模型制作的70%,建模的方法很多,游戏模型常用的软件有3DMAX(游戏制作中使用的软件很多都是英文版,建议学习从英文软件开始)建模的难度在所有职业中是最高最全面的,从桌椅到星舰,巨型BOSS等等复杂的模型,模型这方面没有什么多说的,练习是最重要的。具体的方法技巧可.

    2022年4月3日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号