更新数据
update()
和 decr()
和 incr()
可以更新某些数据,也可以递减或递增,时间的字段名也可以全局配置
更新数据 update()
- @param
obj
数据对象 - @param
options
设置选项 - -------@param
isAutoTime
是否开启自动时间戳,默认不开启 - -------@param
isShowSql
是否打印最终执行的SQL语句,默认不打印 - -------@param
updateTime
更新时间字段名,默认 update_time - -------@param
allProtect
全量更新保护,默认开启,防止忘记写WHERE条件误更新所有数据
Db('user').where('id', 1).update({ name: '张三', age: 18 }, { isAutoTime: true })
Db('user').where('id', 1).update({ name: '张三', age: 18 }, { isAutoTime: 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
步减 默认步减为1 - @options 设置选项
- ---------@param
isShowSql
是否打印最终执行的SQL语句,默认不打印 - ---------@param
isAutoTime
是否开启自动时间戳,默认不开启 - ---------@param
updateTime
更新时间字段名,默认 update_time - ---------@param
allProtect
全量更新保护,默认开启,防止忘记写WHERE条件误更新所有数据
Db('user').where('id', 1).decr('score', 2, { isAutoTime: true })
Db('user').where('id', 1).decr('score', 2, { isAutoTime: 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
步减 默认步增为1 - @options 设置选项
- ---------@param
isShowSql
是否打印最终执行的SQL语句,默认不打印 - ---------@param
isAutoTime
是否开启自动时间戳,默认不开启 - ---------@param
updateTime
更新时间字段名,默认 update_time - ---------@param
allProtect
全量更新保护,默认开启,防止忘记写WHERE条件误更新所有数据
Db('user').where('id', 1).incr('score')
Db('user').where('id', 1).incr('score')
最终的SQL语句为:
UPDATE user SET scorce = scorce + 1 WHERE id = 1
UPDATE user SET scorce = scorce + 1 WHERE id = 1