MySQL存储过程的字符集问题
2023-03-31 11:10:04 时间
MySQL存储是MySQL数据库操作中非常重要的一个工作,也是大家平时工作中都要应用到的。由于存储过程中定义参数时,无法定义其字符集,因此调用存储过程的时候,会默认读取全局变量character_set_server,而且还是只读取mysqld启动时该全局变量的值作为存储过程中默认的传输字符集。因此,如果数据表/字段使用系统默认的字符集(比如latin1)的话,调用存储过程更新一些非英文的字符串字段时,就不会发生问题;但是,如果数据表/字段的字符集不是系统默认的字符集(比如默认是latin1,数据表使用的是utf8),就会出现问题了。
解决办法:
在my.cnf(windows下是my.ini),增加一行:
default-character-set=utf8
或者
character-set-server=utf8
也可以。如果只是在mysqld启动之后,在 mysql 命令行中用 SET 语法来更新的话则不起作用。
相关文章
- ElasticSearch必知必会-进阶篇
- 探讨下如何更好的使用缓存 —— Redis缓存的特殊用法以及与本地缓存一起构建多级缓存的实现
- ClickHouse(11)ClickHouse合并树MergeTree家族表引擎之SummingMergeTree详细解析
- Curve 文件存储在 Elasticsearch 冷热数据存储中的应用实践
- 聊聊分布式缓存
- 使用Logstash工具导入sqlserver数据到elasticSearch及elk分布式日志中心
- elasticsearch实现基于拼音搜索
- [硬核] Bootstrap Blazor Table 综合演示例子
- 【Redis实战专题】「性能监控系列」全方位探索Redis的性能监控以及优化指南
- 使用SQL4Automation让CodeSYS连接数据库
- ClickHouse ORM 3.x 发布啦
- 手撕AVL树(C++)
- 1.5万字总结 Redis 常见面试题&知识点
- 聊聊MongoDB中连接池、索引、事务
- 从实战出发,聊聊缓存数据库一致性
- Apache Kafka 的基本概念
- 数据分析师都要具备以终为始的思考逻辑
- Windows 平台计算 CPU 总利用率
- 痞子衡嵌入式:MCUBootUtility v4.0发布,开始支持MCX啦
- .net core操作MongoDB