Today I learned about NOWAIT
for PostgreSQL. This is an option for the SELECT FOR UPDATE
command, allowing you to control the behavior of locking rows during a transaction. We use SELECT \* FROM table WHERE col = 'value' FOR UPDATE
to provide exclusivity when updating certain objects in the database. Adding the NOWAIT
option causes this statement to error and return immediately if the row is already locked, allowing the application to handle this case in a more interesting way than simply waiting indefinitely.