MySQL长度、大小写验证问题[开发篇]

       实际情况是这样的,从外部读取数据,然后存入数据库,要求不能重复存入数据。

       由于以前的系统里没有加唯一键,所以,就只有手动判断相同记录是否存在了.

       case1.由于其中某个值存在为空情况,而存入时该值变成了系统默认值,因此,每次这个验证都是不通过的,因此,导致了重复运行则重复添加,解决:对于可能为空情况,应给出一个与系统默认值相同的值,对于整型字段查询,也要加上''进行查询,以防报错;

        case2.由于外部数据中某字段长度较长,超过数据库长度,因此,每次存储时,总是被截取,而每次判断是否存在于数据库时,又被判定为不存在,导致重复添加。解决:方法一,扩大数据库字段长度以适应外部长度;方法二,不改变数据库长度,而在存储前进行字符截取以符合规定长度,注意中文截取问题;

        case3.外部数据中有某个字段,大小写乱用,导致查询时出错,mysql不区分大小写,但是取出来进行比较时,语言本身又是区分大小写的,应当注意这个问题。解决:严格区分大小写。

       最后,该加唯一索引的就早加唯一索引,越晚越麻烦,如有冲突,确认情况后该删除删除,从数据库本身现在,才是硬道理啊!

posted @   阿牛20  阅读(500)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示