首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

MYSQL存储过程字符集 一个非常纠结的有关问题

2012-06-21 
MYSQL存储过程字符集 一个非常纠结的问题create testtableA(zhongwentext(256),)DEFAULT CHARSETutf8cre

MYSQL存储过程字符集 一个非常纠结的问题
create testtableA(
  zhongwen text(256),

)DEFAULT CHARSET=utf8;
create testtableB(
  writezhongwen text(256),
  in text(256),

)DEFAULT CHARSET=utf8;

DELIMITER //
CREATE PROCEDURE test(IN inzhongwentext(512) CHARSET 'utf8')
BEGIN
declare temvalue text;
select zhongwen into temvalue from testtableA;
insert into testtableB(writezhongwen,in) value (temvalue,inzhongwen);
END//
DELIMITER ;




如果在创建存储过程的时候不将inzhongwen设置成utf8
那么testtableB的in字段和writezhongwen将会是乱码……
将它设置成utf8后,in字段恢复正常,而writezhongwen字段仍然是乱码

我连接数据库都会经过这个步骤
mysql_query('set names utf8')
我不希望必须要修改mysql的配置文件来来改变数据库的字符集,如果换一台机器,换另一个不懂电脑的人,他就没法弄了~


所有我想请教一下如何可以将
select 出来的字符改成utf8格式呢

MYSQL创建存储过程的时候能像创建表的时候一样指定字符集吗?
或者如何定义变量的时候设置它的默认字符集呢?
declare temvalue text;

[解决办法]
将text类型换成varchar试试

热点排行