更新数据
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 = 1UPDATE 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 = 1UPDATE 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 = 1UPDATE user SET scorce = scorce + 1 WHERE id = 1