1. 关联表名

可以通过定义struct类型的TableName()函数实现定义模型的表名,如此做,使用已关联模型的实例进行表操作时无需再使用**Table()**指定表名

  1. const (
  2. xxxTableName = "xxx"
  3. )
  4. //定义模型
  5. type XxxData struct {
  6. ID int64 `json:"id" gorm:"id" sql:"auto_increment"`
  7. Owner string `json:"owner" gorm:"owner"`
  8. CreatedAt time.Time `json:"created_at" gorm:"created_at"`
  9. }
  10. //为模型关联表
  11. func (t *XxxData) TableName() string {
  12. return xxxTableName
  13. }
  14. //删除示例,无需显示指定表
  15. func DeleteApiMonthAgo() {
  16. db.Delete(&XxxData{}).
  17. Where("created_at < DATE_SUB(now(), interval 30 day)")
  18. }
  • 更多信息:

    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”; ```

  • 注意,先WhereDelete