代码拉取完成,页面将自动刷新
package table
import (
"fmt"
"hash/crc32"
"strconv"
"gorm.io/gorm"
)
// Crc32Hash 用于32张分表
func Crc32Hash(src string) string {
sum := crc32.ChecksumIEEE([]byte(src)) % 32
return strconv.Itoa(int(sum))
}
// Crc16Hash 用于16张分表
func Crc16Hash(src string) string {
sum := crc32.ChecksumIEEE([]byte(src)) % 16
return strconv.Itoa(int(sum))
}
// Crc8Hash 用于8张分表
func Crc8Hash(src string) string {
sum := crc32.ChecksumIEEE([]byte(src)) % 8
return strconv.Itoa(int(sum))
}
// DynamicTable 动态表名
// e.g. DB.Scopes(DynamicTable(Crc32Hash, "test", "小圈圈")).Find(&tests)
// 设置动态表名scope params: f 分表计算函数 baseTable 基础表名 fieldValue 参与分表字段
func DynamicTable(f func(string) string, baseTable, fieldValue string) func(db *gorm.DB) *gorm.DB {
return func(db *gorm.DB) *gorm.DB {
return db.Table(fmt.Sprintf("%s_%s", baseTable, f(fieldValue)))
}
}
func CreateSubTable(f func(string) string) {
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。