关于mysql使用雪花id作为主键出现查询数据不准确问题


1.错误描述:


由于公司所开发项目使用的是雪花ID,所以最近在使用雪花ID做关联查询时出现原本查询结果是一条,但是最终查询出来的却是两条或者多条,造成项目取数据时报错。

2.错误原因


本人在网上找了许久,暂未发现明确原因。但是通过观察查询出来的数据发现,数据的主键id是相邻的!然后根据mysql官方不推荐使用雪花id作为主键的一些原因,本人大概推测。应该就是雪花id引起的查询数据出错!

3.解决办法


解决办法本人推荐2个:

1.尽量不使用雪花id作为主键


如果是刚开始建表时,尽量不使用雪花id作为主键即可避免该问题

2.查询时使用CAST(id,CHAR)函数


如果是必须使用雪花id,可以在关联查询时涉及到雪花id时使用CAST()函数将id的类型强转为CHAR类型进行查询,查询出来的结果就是正确的。但是查询速度太慢!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM