更新时间Updated

Updated可以让您在记录插入或每次记录更新时自动更新数据库中的标记字段为当前时间,需要在xorm标记中使用updated标记,如下所示进行标记,对应的字段可以为time.Time或者自定义的time.Time或者int,int64等int类型。

  1. type User struct {
  2. Id int64
  3. Name string
  4. UpdatedAt time.Time `xorm:"updated"`
  5. }

在Insert(), InsertOne(), Update()方法被调用时,updated标记的字段将会被自动更新为当前时间,如下所示:

  1. var user User
  2. engine.ID(1).Get(&user)
  3. // SELECT * FROM user WHERE id = ?
  4. engine.ID(1).Update(&user)
  5. // UPDATE user SET ..., updaetd_at = ? WHERE id = ?

如果你希望临时不自动插入时间,则可以组合NoAutoTime()方法:

  1. engine.NoAutoTime().Insert(&user)

这个在从一张表拷贝字段到另一张表时比较有用。