1. 关联表名
可以通过定义struct
类型的TableName()
函数实现定义模型的表名,如此做,使用已关联模型的实例进行表操作时无需再使用**Table()**
指定表名:
const (
xxxTableName = "xxx"
)
//定义模型
type XxxData struct {
ID int64 `json:"id" gorm:"id" sql:"auto_increment"`
Owner string `json:"owner" gorm:"owner"`
CreatedAt time.Time `json:"created_at" gorm:"created_at"`
}
//为模型关联表
func (t *XxxData) TableName() string {
return xxxTableName
}
//删除示例,无需显示指定表
func DeleteApiMonthAgo() {
db.Delete(&XxxData{}).
Where("created_at < DATE_SUB(now(), interval 30 day)")
}
- 更多信息:
2. 关于删除操作
当带Where()
子句时,代码顺序如下:``go // Email 的 ID 是
10` db.Delete(&email) // DELETE from emails where id = 10;
// 带额外条件的删除 db.Where(“name = ?”, “jinzhu”). Delete(&email) // DELETE from emails where id = 10 AND name = “jinzhu”; ```
- 注意,先
Where
再Delete