|
由于存储过程中定义参数时,无法定义其字符集,因此调用存储过程的时候,会默认读取全局变量character_set_server,而且还是只读取mysqld启动时该全局变量的值作为存储过程中默认的传输字符集。因此,如果数据表/字段使用系统默认的字符集(比如latin1)的话,调用存储过程更新一些非英文的字符串字段时,就不会发生问题;但是,如果数据表/字段的字符集不是系统默认的字符集(比如默认是latin1,数据表使用的是utf8),就会出现问题了。解决办法是:在my.cnf(windows下是my.ini),增加一行: default-character-set=utf8 或者 character-set-server=utf8 也可以。如果只是在mysqld启动之后,在 mysql 命令行中用 SET 语法来更新的话则不起作用。
|
MySQL 存储过程的字符集问题
2007-06-24 23:08 来源: imysql.cn 作者:叶金荣 网友评论 0 条 浏览次数 139
上一篇:
下一篇:
相关主题:mysql字符集 MySQL存储过程
- 2010-03-29 10:22关于MySQL字符集架构的思考
- 2009-11-14 08:57MYSQL 字符集
- 2009-01-19 10:17mysql字符集及编码转换
- 2009-01-09 09:51mysql字符集及编码转换
- 2008-12-16 16:12MySQL存储过程学习

