Nico Erichsen <nico.e@gmx.de> writes:
> set transaction isolation level serializable;
> begin;
> update counters set counter1=(select counter1+1 from counters);
Try it the other way round:
begin;
set transaction isolation level serializable;
update counters set counter1=(select counter1+1 from counters);
Isolation level is a transaction-local setting so the first way doesn't
affect the level the BEGIN block actually uses. (There is a SET
variable to change the default level for future transactions, but that
ain't what you set here.)
regards, tom lane