gorm自動更新創建時間及更新時間,自動更新時間戳

平時寫代碼,總是要處理更新時間和創建時間,要寫不少的代碼,而且還容易忘記。
針對於這個問題研究了一下有沒有什麼比較好的方式。下面說一下如何擺脫體力勞動。
假設場景,需要改分好畢業。。。

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) DEFAULT NULL,
  `score` int(11) DEFAULT NULL,
  `createtime` datetime DEFAULT CURRENT_TIMESTAMP,
  `updatetime` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`userid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

此時創建數據庫的語句中要加入 createtime 跟 updatetime 兩個,一個是創建的時候填上,一個是創建的時候天上並且更新的時候自動更新。
這樣就配置好數據庫部分了。

type TableUser struct {
  UserID int `gorm:"column:id" json:"id"`
  Name string `gorm:"column:name" json:"name"`
  Score int `gorm:"column:score" json:"score"`
  CreateTime time.Time `gorm:"column:createtime;default:null" json:"createtime"`
  UpdateTime time.Time `gorm:"column:updatetime;default:null" json:"updatetime"`
}

這樣gorm需要的結構體也創建好了,最重要的是其中的 default:null ,這樣以後在創建或者更新的時候都不需要傳遞CreuateTime跟UpdateTime兩個了。

var u = TableUser {
  Name: "小明",
  District: 59,
}u
db.Create(&u)

Nice~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章