更新数据
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