db(...).update(some_field = db.some_table.some_field_or_another_field + 1)
- should work ( it is a single db-query)
вторник, 25 мая 2021 г. в 19:59:34 UTC+3, Rob Paire:
> Hi All
> Thank you for the helpful comments! I am fine leaving the SQL Execute
> statement in place, but thought the question was worth asking.
>
> -Rob
>
> On Tuesday, May 25, 2021 at 8:06:46 AM UTC-4 Carlos Correia wrote:
>
>> Às 18:20 de 20/05/21, Rob Paire escreveu:
>>
>> Hello all,
>>
>> I am wondering if it's possible to use DAL update method to increment the
>> value of table column H_REVNO in one line of code, and one trip to the
>> database?
>>
>> I tried this query, and a couple of similar variations, but could not get
>> it to work.
>> db(db.KICKER.id == request.vars.kicker_id).update(H_REVNO=H_REVNO+1)
>>
>> Here is what I am using for now
>> db.executesql("update KICKER set H_REVNO = H_REVNO + 1 where ID = "+
>> str(request.vars.kicker_id)) which of course works.
>>
>> Thank you all!
>>
>>
>>
>> Hi,
>>
>> Using DAL you have to read the record first in other to get the value to
>> be incremented. But, if there are many users it might lead to corrupted
>> values due to concurrency.
>>
>> As far as I know, the latest is the only sane approach to solve your
>> problem.
>>
>>
>> Carlos Correia
>> =========================
>> MEMÓRIA PERSISTENTE
>> GSM: 917 157 146 (Signal, WhatsApp)
>> e-mail: [email protected]
>> URL: http://www.memoriapersistente.pt
>> XMPP (Jabber): [email protected]
>> GnuPG: wwwkeys.eu.pgp.net
>>
>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/4c02c060-6a2f-4905-8d7d-3c7bfa15ff28n%40googlegroups.com.