【发布时间】:2018-09-18 06:05:49
【问题描述】:
我有一个 web2py 定义的数据库表,用于计算特定用户发出请求的次数 - 所以它有整数列“user_id”和“n_req”。我不想为每个可能的用户填充零。相反,我想检查是否存在具有 user_id 的行,如果存在,则将“n_req”加一,否则使用初始值为 1 的“n_req”创建它。为了避免竞争条件,我想做这使用单个 update_or_insert 调用,例如
db.count_table.update(db.count_table.user_id == uid, user_id = uid, n_req = n_req + 1)
但是,我想我不能这样做,因为它在递增时使用n_req 的预先存在的值。那么我如何告诉 DAL n_req 的初始值。例如n_req = (n_req || 0) + 1可以吗?
【问题讨论】:
标签: sql-update counter sql-insert web2py