xorm icon indicating copy to clipboard operation
xorm copied to clipboard

提议添加一个TAG功能扩展,可以更新为0或为nil的字段到数据库

Open victor-p-wang opened this issue 9 years ago • 7 comments

很多时候很多字段都有可能被更新为0,或者有时候某些字段在一开始并不知道将来会不会设置为0,如果这类字段很多,那么更新语句就会很繁琐。 比如下面,像balance和pay的字段如果很多的话,那写起来就会很长的语句,跟手写SQL差不多工作量了 user.Balance = 0 user.Pay = 0 engine.Id(id).Cols("balance").Update(&user) 而且如果程序员一旦忘了给某个字段使用Cols去设置,会是一个比较大的坑。

能不能加一个TAG的关键字,加了这类关键字的字段是可以被允许更新0到数据库的,比如 type User struct { Balance int xorm:"allow-zero" Pay int xorm:"allow-zero" Age uint } Balance和Pay为0时可以被更新到数据库,但是Age为0就不会被更新过去

victor-p-wang avatar Jun 05 '15 14:06 victor-p-wang

考虑下。

lunny avatar Jun 05 '15 16:06 lunny

+1

tossp avatar Jun 12 '15 18:06 tossp

+1

ohko avatar Sep 12 '15 16:09 ohko

Maybe the keyword always-update is better.

lunny avatar Apr 01 '17 02:04 lunny

+1 墙裂需要这个功能,不然动态添加Cols太痛苦了, 而AllCols 和 MustCols 又太极端了,全部要求field存在,不然会更新为默认零值

javasgl avatar Jun 20 '18 06:06 javasgl

强烈支持下哈,不然真的痛苦,不清楚使用cols的人用说不定就是个坑哈,例如商品库存量不能减为0,这是要出大事故的,请问加了吗,真的后悔入坑了 @lunny

ghost avatar May 30 '19 03:05 ghost

+1

jjjachyty avatar Aug 31 '19 05:08 jjjachyty