May 2018
Intermediate to advanced
576 pages
30h 25m
English
Instead of locking Bob's row for the time the data from the first SELECT command is processed in the client, PostgreSQL queries the old state of Bob's account record in the old_acc_info variable, and then uses this value to check that the record has not changed when we eventually update.
You can also save all fields individually, and then check them all in the UPDATE query; or, if you have an automatic last_change field, then you can use it. Alternatively, if you actually care about only a few fields changing, such as balance, and can ignore others, such as email, then you only need to check the relevant fields in the UPDATE statement.