[英]Gorm Timestamps in Golang
type Base struct {
ID uint `gorm:"primary_key" json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt *gorm.DeletedAt `sql:"index" json:"deleted_at" swaggertype:"primitive,string"`
CreatedByID uint `gorm:"column:created_by_id" json:"created_by_id"`
UpdatedByID uint `gorm:"column:updated_by_id" json:"updated_by_id"`
}
如果我將一些值傳遞給 created_at 和 updated_at,它會將當前時間作為默認值,而不是我傳遞的值。 有什么辦法可以讓 gorm 接受我已經傳遞的值。
三種方式
current_timestamp()
可以使用 CreatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP()"`
gorm.Model
嵌入到您的結構中,以自動處理 ID、CreatedAt、UpdatedAt 和 DeletedAt。如果包含文件:CreatedAt 和 UpdatedAt,gorm 將在執行時使用反射插入默認值。 你也可以給出具體的值。
info := Example{
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
}
_, err := DB.Insert(info)
@s3vt 回答的更新:
如果您使用他們提供的第一種方法,則需要像這樣在不帶括號的情況下放置 function:
CreatedAt time.Time `gorm:"default:current_timestamp"`
我花了很多時間試圖找出我遇到的錯誤,所以我想我會把它分享給可能會遇到這個問題的人!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.