上面的调整基本上能解决大部分此类问题,但是我们的存储过程依然执行不了。经过一番分析,发现我们的存储过程中会新建一个临时表,代码大概是这样: insert into tmp(region, cell, relation)select distinct r.region, t.cell, -1from rr_tmp r left join (
上面的调整基本上能解决大部分此类问题,但是我们的存储过程依然执行不了。经过一番分析,发现我们的存储过程中会新建一个临时表,代码大概是这样:
insert into tmp(region, cell, relation)select distinct r.region, t.cell, -1from rr_tmp r left join ( select distinct region, cell from ri_tmp ri, ce_tmp ct where ri.region=ce.region) ton r.region=t.region where r.region is null;
我们怀疑字符编码不一致的原因是这个临时表的字符编码与rr_tmp表的字符编码不一致导致的,但是如何控制临时表的字符编码呢?
临时表的字符编码其实就是数据库的默认字符编码,通过 show create database test_db 可以看到数据库的字符编码 将数据库的字符编码修改成与rr_tmp的字符编码一致,就ok了
alter database test_db characeter set utf8
date: 2015-02-04t15:58+0800
author: cobbliu
org version 7.9.3f with emacs version 24
