I’m connecting to a DB2 database and executing SQL statements.
One example of what is being done is:
select field from library/file
[program code line finishes executing]
[increment value by one]
update library/file set field = 'incremented value'
I have a need to immediately update the value while returning the value. Rather than having to wait for the script to complete, and then run a separate UPDATE statement.
The concept of what I would like to do is this:
select field from library/file; update library/file set field = (Current Value + 1); go;
Please note… this is not the common SQL database most would be familiar with, it is a DB2 database on an IBM i.
Thanks!
This handles the problem of another app updating the number between the time you fetch it and the time you update it. Update it and then use it. If two apps try to update simultaneously, one will wait.
A SEQUENCE object is designed exactly for this purpose, but if you are forced to keep this ‘next ID’ file updated, this is how I’d do it. Follow the link in the comment by @Clockwork-Muse for info on the SEQUENCE object, or try this example from V5R4.