Skip to content

更新数据


Update()Decr()Incr()

可以更新某些数据,也可以递减或递增,时间的字段名也可以全局配置

更新数据 Update()

  • @param data 数据, 可以通过map也可以通过结构体传
  • @param options 设置选项, 选填可不传 tg.UpdateOption{}
  • -------@param Debug 是否打印最终执行的SQL语句,默认不打印
  • -------@param AutoTime 是否开启自动时间戳,默认不开启
  • -------@param UpdateTime 更新时间字段名,默认 update_time
  • -------@param AllProtect 全量更新保护,默认开启,防止忘记写WHERE条件误更新所有数据
err := Db("user").Where("id", "=", 1).Update(map[string]interface{}{
    "name": "张三",
    "age": 18,
}, tg.UpdateOption{ AutoTime: tgutl.PtrBool(true) })
err := Db("user").Where("id", "=", 1).Update(map[string]interface{}{
    "name": "张三",
    "age": 18,
}, tg.UpdateOption{ AutoTime: tgutl.PtrBool(true) })

最终的SQL语句为:

UPDATE user SET name = '张三', age = 18, update_time = '2023-12-12 00:00:00' WHERE id = 1
UPDATE user SET name = '张三', age = 18, update_time = '2023-12-12 00:00:00' WHERE id = 1

递减 Decr()

  • @param field 字段名
  • @param num 步减量
  • @options 设置选项, 选填可不传 tg.DecrOption{}
  • ---------@param Debug 是否打印最终执行的SQL语句,默认不打印
  • ---------@param AutoTime 是否开启自动时间戳,默认不开启
  • ---------@param UpdateTime 更新时间字段名,默认 update_time
  • ---------@param AllProtect 全量更新保护,默认开启,防止忘记写WHERE条件误更新所有数据
err := tg.Db("user").Where("id", "=", 1).Decr("scorce", 2, tg.DecrOption{ AutoTime: tgutl.PtrBool(true) })
err := tg.Db("user").Where("id", "=", 1).Decr("scorce", 2, tg.DecrOption{ AutoTime: tgutl.PtrBool(true) })

最终的SQL语句为:

UPDATE user SET scorce = scorce - 2, update_time = '2023-12-12 00:00:00' WHERE id = 1
UPDATE user SET scorce = scorce - 2, update_time = '2023-12-12 00:00:00' WHERE id = 1

递增 Incr()

  • @param field 字段名
  • @param num 步增量
  • @options 设置选项, 选填可不传 tg.IncrOption{}
  • ---------@param Debug 是否打印最终执行的SQL语句,默认不打印
  • ---------@param AutoTime 是否开启自动时间戳,默认不开启
  • ---------@param UpdateTime 更新时间字段名,默认 update_time
  • ---------@param AllProtect 全量更新保护,默认开启,防止忘记写WHERE条件误更新所有数据
err := tg.Db("user").Where("id", "=", 1).Incr("scorce", 1)
err := tg.Db("user").Where("id", "=", 1).Incr("scorce", 1)

最终的SQL语句为:

UPDATE user SET scorce = scorce + 1 WHERE id = 1
UPDATE user SET scorce = scorce + 1 WHERE id = 1

备案号:冀ICP备20015584号-5