在使用gorm进行修改操作时,修改操作中如下两个方法:
Update()
Updates()
都可以实现修改,根据名称可以看出Update是针对单个字段,而后者应该是多个。
下面是主要实际操作:
Updates()
即,前者确实是一次写一个字段,后者可以按映射自定义。
但还是有区别,两种方法都可以实现主要功能,但如果修改的字段稍多一些,基于前者实现时,会调用多次Update()方法,看着没有什么,但实际上调用了几次该方法就执行了几次修改的SQL语句,而后者仅是一条语句。
从原子性上来说明显后者单元较小,一次完成,但猜测框架内部可能也做了优化,既然多次语句最终只返回一个Error,应该也用到了事务统一提交这几条update语句。
因此综上来看,可以按实际情况来使用。
最后
UpdateColumns和UpdateColumn两个方法和上面的类似,只是这两个执行时会跳过 Hook 方法,同时不追踪更新时间。