Mysql 创建存储过程:设置字符集和排序规则
创建MySQL存储过程时,如何设置字符集和排序规则?没有提供任何示例,对一般语法的理解也有点不清楚Mysql 创建存储过程:设置字符集和排序规则,mysql,stored-procedures,character-encoding,Mysql,Stored Procedures,Character Encoding,创建MySQL存储过程时,如何设置字符集和排序规则?没有提供任何示例,对一般语法的理解也有点不清楚 mysql> show procedure status\G *************************** 1. row *************************** Db: MslLandingSequence Name: DeploySkycrane Type: PR
mysql> show procedure status\G
*************************** 1. row ***************************
Db: MslLandingSequence
Name: DeploySkycrane
Type: PROCEDURE
Definer: curiosity@localhost
Modified: 2012-08-04 00:05:16
Created: 2011-11-12 00:02:45
Security_type: DEFINER
Comment:
character_set_client: latin1
collation_connection: latin1_swedish_ci
Database Collation: latin1_swedish_ci
最后三项应为Unicode。谢谢
character\u set\u client是character\u set\u客户端的会话值
创建例程时的系统变量。排序规则\u连接不可用
当
创建了一个例程。数据库排序规则是
与例程关联的数据库。这些柱子是
在MySQL 5.1.21中添加
简而言之,打开一个mysql命令行,输入
SET NAMES UTF8;
然后删除并重新导入存储过程。这解决了我的问题。我甚至不想考虑5.1.21之前的用户。他们在黑暗中摸索 注意这个问题。它显示过程及其参数与数据库的默认字符集不相关,但始终与二进制字符串相关
因此,必须为参数显式指定字符集属性
简单的重新创建过程可能无法解决问题。这本身不是一个重复的问题,但可能是同一个问题:@StephenO'Flynn:谢谢。这不是完全相同的问题,但该页面链接中的一些信息是相关的。斯蒂芬:事实上,这些都是不相关的东西。多坦科:嗯,有答案吗:)?我希望我有答案。我不!谢谢大家!<代码>集合名称utf8实际上会影响
字符集\客户端
和排序规则\连接
,但不会影响数据库排序规则
。我怀疑,正如名称所暗示的,在创建数据库时必须设置最后一个,而实际上可能不是存储过程本身的属性。好发现!注意:UTF8不工作。当我设置为小写时,它对我有效。设置名称utf8<代码>设置名称utf8mb4代码>为我工作(想使用Smileys)我花了一整晚的时间来找出第1行“p_name”列的“字符串值不正确:'\xD0\x9C\xD0\xB0\xBA…”错误的解决方案。感谢你的提问,我发现了MySQL漏洞:)所以,谢谢你