当前位置: 首页 > 工具软件 > Go GORM > 使用案例 >

go gorm查询表名缓存问题,分表动态查询处理

狄天逸
2023-12-01

目录

背景

问题描述

问题原因

解决


背景

最近由于业务数据表增长过快,做了按月分表处理,表明如:user_202206,user_202207,user_20220......。

问题描述

比如当前是2022-07月,查询的表是user_202207,如果今天正好跨月是8月1号,此时你会发现程序查询有问题,没有按照新的分表user_202208查询,发现问题后手动重新部署了下服务器,程序又可以正常查询user_202208分表了。

问题原因

 gorm TableName 不支持动态变化,它会被缓存下来以便后续使用(正常表的表名查询是会被缓存下来,导致动态分表的数据无法正常查询)

官方文档:约定 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.

解决

需要强制指定表明即可:db.Table("user_202208")

 类似资料: