【go】gorm中去掉默认表名后的s复数形式
背景
使用gorm时,查询数据时mysql报错,显示表名不存在,仔细查看,报错的表名中增加了s,比如实际数据库表名是:ali_user,报错信息中显示表 ali_users 不存在
原因
gorm默认使用结构体的复数形式作为表名
比如:
# 表结构体定义如下:
type AliUser struct{
ID int64 `json:id`,
}
# 实际读取数据时,定义该类型的变量接收数据,报错,显示 ali_users表名不存在
解决
在model中增加显式定义表名,不使用gorm的隐式表名定义规则
# TableName 解决gorm表名映射
func (AliUser) TableName() string {
return "ali_user" # gorm中默认定义的表名是 ali_users,但其实数据库并没有这个表
}
标签:ali,默认,报错,复数,表名,go,gorm
From: https://www.cnblogs.com/alisleepy/p/18093981