| ▲ | fake-name 2 hours ago | |
I'm confused. > The simplest case: no transaction, just a SELECT and an UPDATE with a barrier between them: There is no context where you do not have a transaction. Postgres requires them. It's likely that the library the author is using is doing automatic implicit transactions, but it seems like the author needs to understand their tools a bit better. | ||
| ▲ | lirbank 2 hours ago | parent [-] | |
You're right, Postgres wraps every statement in an implicit transaction. The point of that first example is that the SELECT and UPDATE are in separate auto-committed transactions - there's no explicit transaction block wrapping both. So another connection can change the value between your SELECT and your UPDATE. | ||