GORM模型定义速查

首页 / Golang / 正文
type User struct {
  gorm.Model // 这里边包含了主键子增id,创建时间,修改时间,删除时间
  Name string `gorm:"<-:create"` // 只能读和创建
  Name string `gorm:"<-:update"` // 只能读和修改
  Name string `gorm:"<-"`        // 读,创建,修改
  Name string `gorm:"<-:false"`  // 读, 关闭写权限
  Name string `gorm:"->"`        // 只读
  Name string `gorm:"->;<-:create"` // 读和创建
  Name string `gorm:"->:false;<-:create"` // 只能新增
  Name string `gorm:"-"`            // 创建和读的时候从struct忽略这个字段
  Name string `gorm:"-:all"`        // 在数据迁移,读和新增的时候都忽略 ignore this field when write, read and migrate with struct
  Name string `gorm:"-:migration"`  // 迁移的时候忽略这个字段 ignore this field when migrate with struct
  
  CreatedAt time.Time // 在创建时,如果该字段值为零值,则使用当前时间填充
  UpdatedAt int       // 在创建时该字段值为零值或者在更新时,使用当前时间戳秒数填充
  Updated   int64 `gorm:"autoUpdateTime:nano"` // 使用时间戳填纳秒数充更新时间
  Updated   int64 `gorm:"autoUpdateTime:milli"` // 使用时间戳毫秒数填充更新时间
  Created   int64 `gorm:"autoCreateTime"`      // 使用时间戳秒数填充创建时间
  
  Name string `gorm:"varchar(200) not null"` // 指定字段数据结构 bool、int、uint、float、string、time、bytes
  Name string `gorm:"size(200)"` // 指定列大小
  Name string `gorm:"primaryKey"` // 设置为主键
  Name string `gorm:"unique"` // 唯一
  Name string `gorm:"default(123)"` // 设置默认值
  Name string `gorm:"precision(2)"` // 精度
  ID int `gorm:"autoIncrement"` // 自增长
  
}

// gorm.Model 的定义
type Model struct {
  ID        uint           `gorm:"primaryKey"`
  CreatedAt time.Time
  UpdatedAt time.Time
  DeletedAt gorm.DeletedAt `gorm:"index"`
}
打赏
评论区
头像